Home
Login
Register
Search
Home
Siebel eScript.pptx
Siebel eScript.pptx
March 29, 2018 | Author: Shanta Devi | Category:
Scripting Language
,
Sql
,
Control Flow
,
Database Index
,
Class (Computer Programming)
DOWNLOAD
Share
Report this link
Comments
Description
Siebel Scripting –SDU-02- Training Pack-Jeetesh Goud © Tech Mahindra Limited 2011 Tech Mahindra Limited confidential Topics  Overview  Architecture  Fundamentals  Declarative alternatives to scripting  Best Practices  Scripting : Execution flow with example Siebel eScripting –Overview What is Siebel Scripting  An integrated use of multiple scripting languages to support Siebel Applications  Siebel 2000 requires the use of only one language code type  Visual Basic (VB)  eScript  Siebel 7 & 8 supports use of both languages within the same application Prompt. customer specific data validation rules  May incorporate validations based upon data internal or external to siebel  Communication with external sources  Workflow Processes  Business Services and Transport Adaptors  Virtual Business components(VBCs)  Dynamic User Interaction  RaiseError /RaiseErrorText  Alert.Siebel Scripting Capabilities  Scripting provides a flexible mechanism for extending the Siebel eBusiness applications  Common usage scenario’s:  Simple or complex. Confirm  Custom HTML dialogs .  Written in java script. controls in Standard Interactivity mode  Scripts are written in Siebel provided Events.  Events are invoked automatically in a Siebel defined hierarchy .  Interfaces available for accessing Siebel objects in High interactivity mode.Siebel Scripting  Script can be written in both server side and browser side of the Siebel application.  Server scripts are written in eScript or VB Script  Limited support for user interaction  Browser Script  Runs in the client application in the browser at Run time.  Server Script  Server Script run in the Object manager on server. Architecture . Smart Web Architecture . Server Script Architecture  Executed in Siebel Object Manager  Authored within Siebel Tools and administrative views  Uses Siebel VB and eScript  Supports integration with legacy and packaged applications and other services . Browser Script Architecture  Executed in the browser at run time  Authored within Siebel Tools  Uses Javascript  Supports COM-based integration with desktop applications like Microsoft excel . Fundamentals . Update.Server Script When. and Delete operations Access data beyond the current record. Insert. Access data beyond current business component. Interaction with other server components or external services ..     Query. e. font colors or sizes).Browser Script Used When ..  Data Manipulation at Current Record level.  Showing alerts or popup windows.  Obtaining input from the user.  Invoking business services. .  Interacting with another application.  Modifying parts of the UI dynamically (i.  When you invoke business service methods through Browser Script.  Browser script can invoke server script but not the other way round.  In Browser Script. the high interactivity mode framework checks if the business service resides in the browser.Important points of Browser Script  Browser script uses theApplication() and not TheApplication().  In Browser Script.  Browser Script may invoke a browser-based or server-based business service. . and if it does not find it. Initially. in Server Script. but Server Script can only invoke a server-based business service. the GetBusComp() method can access every business component that has been instantiated in the active business object. the GetBusComp() method can only access business components in the current view. GetFieldValue can be used only for the fields exposed in the applet and Id Field. it sends the request to the server for execution. the business service may be implemented as a browserbased business service (written in JavaScript) or a server-based business service.  E.  E. CONFIDENTIAL© Copyright 2008 Tech Mahindra Limited 6/20/15 1 5 . WriteToLog. Date Manipulation. Responsibility Check.Layers of Scripting  Application  Script to be executed during Application login or log off.g.  Actions generic to entire application.  Business Service  Script that is common and can be called from anywhere within the application.g.  Business Component  Script common to only certain applets  Applet  Script common to a single applet.  Application_Start Event  When Application starts.  Application_Navigate Event  After the client has navigated to a view. .Siebel Events at Application layer  Application Server Script  Application_Close Event  Before application close  Last minute cleanup.  Application_PreNavigate Event  Before the client navigates to a view.  Application_InvokeMethod Event  After specialized method is invoked.  Application_PreInvoke Event  Before specialized method is invoked  Before custom method is invoked. .  Application_InvokeMethod Event  After specialized method is invoked.Siebel Events at Application layer  Application Browser Scrip  Application_PreInvoke Event  Before specialized method is invoked  Before custom method is invoked. .  Service_InvokeMethod Event  After specialized method is invoked  Service_PreCanInvokeMethod  Before Pre Invoke  Checks if user has authority to invoke.Siebel Events at Bus Service layer  Business Service Server and Browser Script  Service_PreInvokeMethod  Before specialized method is invoked  Before custom method is invoked.  BusComp_CopyRecord  After a record is copied and made active. .  BusComp_PreAssociate  Before record is added for association.  BusComp_InvokeMethod  After a method is invoked.  BusComp_NewRecoed  After a new record is created and activated.Siebel Events at Bus Comp layer   Business Comp Server Script  BusComp_Associate  After record is added for association.  BusComp_DeleteRecord  After a record is deleted.  BusComp_PreQuery  Before a query execution.  BusComp_PreDeleteRecord  Before a record is deleted.  BusComp_PreGetFieldValue  When value in a field is accessed. .  BusComp_PreInvokeMethod  Before specialized method is invoked  BusComp_PreNewRecord  Before a new record is created and activated.Siebel Events at Bus Comp layer  Business Comp Server Script  BusComp_PreCopyRecord  Before a record is copied and made active.  BusComp_PreSetFieldValue  Before a value is pushed down a field.  To prevent deletion. Siebel Events at Bus Comp layer  Business Comp Server Script  BusComp_PreWriteRecord  Before a row is written in DB.  Business Comp Browser Script  BusComp_PreSetFieldValue  Before a value is pushed down a field.  BusComp_Query  After a query execution.  BusComp_SetFieldValue  After a value is pushed down a field.  Not Invoked for a pick list and MVF.  BusComp_WriteRecord  After a row is written in DB. . Siebel Events at Applet layer  Applet Server Script  WebApplet_InvokeMethod  After a method is invoked through applet or menu. .  WebApplet_ShowControl  After HTML is generated by SWE after some server operation.  For application in SI mode.  Before pre invoke to check if user has authority to invoke the method.  WebApplet_PreInvokeMethod  Before a method is invoked through applet or  WebApplet_PreCanInvokeMethod menu.  WebApplet_ShowListColumn  After HTML for a list applet is generated by SWE after some server operation.  WebApplet_Load  After an applet is loaded. • Applet_InvokeMethod • After a method is invoked through applet or menu.Siebel Events at Applet layer   Applet Browser Script  Applet_ChangeFieldValue  When data in a field changes through applet.  Not invoked for pick and popup applet. • Applet_PreInvokeMethod • Before a method is invoked through applet or menu. • Applet_Load • After applet is loaded and data is displayed. . • Applet_ChangeRecord  When user moves to another row. Siebel Event Model for Button Click Continue Operation Continue Operation Continue Operation Continue Operation Continue Operation . Effect of CancelOperation  Use carefully.  Stops execution of Siebel internal code and user code.  E.g.  Use during Negative validation. if( sResponse == "FALSE") { TheApp.RaiseErrorText(sMsg); return(CancelOperation); } Concept of Profile Attribute  Profile attributes are values that, once set, can be accessed throughout the application.  Profile attribute values persist until application log off.  SetProfileAttr  Sets a profile attribute value. BusComp_SetFieldValue(fieldname) { if(fieldname == ‘Account No’) TheApp.SetProfileAttr (“sAccountSet” ,”Y”); }  GetProfileAttr  Retrieves a profile attribute. BusComp_WriteRecord() { if (TheApp.GetProfileAttr (“sAccountSet”) == “Y”) CancelRec(); }  The impact of profile attribute is discussed in Best practice section. Siebel Class  Specialized classes provided by Siebel that contain various methods and user properties that can be used.  Classes and their methods are inherited.  Applet Classes  Building Blocks of user interface.  Used to instantiate applet objects.  Business Component Classes  Used to instantiate Business Component objects.  Business Service Class  Used to instantiate Business Service objects.  User defined business service should always have CSSService class.  Business service for EAI should have CSSEAIDTEScriptService class. Some Applet Classes  CSSFrame  Used to invoke general method for form applets.  E.g. ExecuteQuery, NewQuery, Inherited parent methods. Parent – CSSSWEBase  CSSFrameBase  Used for form applet functionality in base mode.  Methods – GoToPage, GoToURL, GoToView  Parent – CSSSWEFrame  CSSFrameList  Used for list applets functionalities  Methods – Inherited CSSSWEFrame, CSSFrame methods  Parent – CSSSWEFrame  CSSFramePopup  Used for list applets functionalities in Base mode  Methods – Same as FrameBase Counterparts.  CSSFrameListPopup  Used for popup list applets functionalities .Some Applet Classes contd…  CSSFrameListBase  Used for list applets functionalities in Base mode  Methods – Same as FrameBase Counterparts.  Helps in creation and manipulation of SR  CSSBCFINOppty  A class for opportunity based functionalities.Some BC Classes  CSSBusComp  A main base class from which other child classes are derived. .  CSSBCVExtern  A class for VBCs for reading external XMLs .  CSSBCActivity  A base class for Action related activities  Helps in creation and manipulation of activity  CSSBCServicRequest  A class for SR related activities BC.  Incorrect object declaration leads to memory leak.  Dynamic switching between server and browser side script not possible  Minor change in script requires srf compile  Scripts are not upgradeable.Drawbacks of scripting  Siebel recommends that scripting should be last resort.  Difficult to maintain code.  single script can have 16K lines of code. . Declarative alternatives to scripting . Declarative alternative to scripting  Best alternative to scripting is using user properties.  Implement run-time behavior that supplements scripting.  User Property are of the following types  Applet level  Control level  BC level  Field level . '"RowId"'. "Action". "BusComp". "Expression“  To invoke BC  "Name".g. "Action".  To set field value  "Name".  'INVOKESVC'. Named Method 2: WriteRecord  'INVOKE'. 'Workflow Process Manager'. "Method“  To invoke BS  "Name". "Field". "Service".New Order"'. 'Run Process'. '"Account . '"ProcessName"'. "Method“  Can invoke methods in order  E.'[Id]' .Applet User Properties  Named Method n  To invoke BC. "SET". 'WriteRecord'. "BusComp". BS or set field value. Applet user Properties contd…  CanInvokeMethod: MethodName  To enable/disable methods behind buttons.g. Name: DisableNewRecord  Value: CurrentApplicationName .  E.  E. Name: Default Applet Method  Value: MethodName  DisableNewRecord  To disable new record creation on the applet  E.g. Name: CanInvokeMethod: CopyRecord  Value: N  Default Applet Method  Specifies method invoked on hitting Enter key.g.  Value : NameOfService. "[Primary Held Position Id] is not null and [Primary Held Position Id] <> ""No Match Row Id""". "FieldValue“  E. "Employee Flag".  ServiceName  BS to be invoked for a VBC.  Value : NameOfField. "FieldName". "Y" .g.BC User Properties  Named Method n  Same as Applet user property.  BC Read Only Field  To make a field read only in the UI.  On Condition Set Field Value  To set a field value under a condition  Value : "Condition".  On Field Update Invoke n  To invoke a BC method on a field update. "Value". CopyXA"  On Field Update Set n  To set a field value when another field is updated.  Value: "[FieldToCheck]". "FieldToSet". "Asset Mgmt Asset".  Value: "FieldToCheck". On Field Update Invoke "Product Name".  E. "[BusCompName]". "Condition“  Value and Condition are optional. "Done".Some BC User Properties contd.Today ()..g. "[MethodName]“  E. "")" . "IIF ([Done Flag] = "Y".g. "Done Flag". Property Set     Collection of properties. Used as inputs and outputs for BS. May have child properties. used for storing data. . Also used to represent EAI data.  SetProperty  Sets a property (name value pair) in a property set.Some Property Set Methods  AddChild  Adds a child property set to a parent.  GetChildCount  Returns the number of children.  GetChild  Returns the specific child property set.  GetProperty  Returns the value of a specified property in a property set. .  RemoveProperty  Removes a property from a property set. SetProperty(“ LookupValue". SetProperty(“ View". svcBusinessService = oApp. "CUT Invoice Sub Accounts").NewPropertySet(). "Id"). } svcBusinessService. vRowId). with(psInputssvc) {SetProperty(“ Object". SetProperty(“ LookupField". "BT Billing Account"). "BT BAL Invoice Credit Schedule View").psInputssvc.Correct way of passing inputs to BS psInputssvc = oApp.psOutp utssvc). Outputs) { ----------------------------------------} .NewPropertySet().GetService("BT GotoView"). psOutputssvc = oApp.InvokeMethod("BTGotoView". BT Goto View method Structure function BTGotoView (Inputs. SetProperty(“ Component". Incorrect way of passing input to BS svcBusinessService = oApp. “Gold”.GetService("BT Nevis Consumer"). “Order Type”). svcBusinessService. fnGetLetterText method Structure function fnReplace (sData. sReplaceWhat) { ----------------------------------------} .InvokeMethod("fnReplace". XML representation of property sets  Property set can be depicted as XML and vice versa for EAI.  XML hierarchy BS used for conversion.  Property sets have corresponding XML construct Prop set Xml tag Prop set type Tag name Prop set value Tag value Property name Tag attribute name Property value Tag attribute value Child property Child tag . Property set to XML . Naming convention Data Type Symbol Example String S sMessage Integer I iCount Boolean B bFound Business Object bo boAccount Busines Component bc bcContact PropertySet ps psInputs Business Service svc svcBTConsumer Date dt dtToday Applet ap apOrderItems Control ctl ctlButton . Sample scripts  Enabling button on an applet .  Display error message using server script .Sample scripts contd.. Sample scripts contd..  Asking confirmation on browser script . Try/Catch/Finally block is must. function Name (Inputs.Basic Scripting Guidelines  Code Layout  Script should be laid out in a consistent fashion throughout the whole repository. Outputs) { try { } catch (e) { } finally { } }  Scripts should be as clean as possible:  Remove all debug code  .  Object instantiation  Always instantiate object where required. . never at the top.Basic Scripting Guidelines contd..  Correct order  Evaluate condition  Create objects based on condition  Use objects  Incorrect order  Create objects  Evaluate condition  May or may not use object based on condition.  Destroy objects in reverse order in which they are created by Siebel  Child objects first.Basic Scripting Guidelines contd.. in the finally block.  Pick/Associate/MVG business components before the parent business component  Business components before business objects  No specific order for property sets and business services since they are independently created from the application . parent objects second.  Object Destruction  Explicitly destroy objects once they are used.  Destroy objects by setting it to null  bcBCName = null.  This prevents memory leakage. ExecuteQuery(ForwardOnly) instead of  ExecuteQuery(1)  Improves readability  Easier to upgrade.. .  E.g.  Can be easily changed and don’t need re compilation.g.  DeleteRecord  A call to DeleteRecord implicitly moves the record pointer to the next record.  In order to prevent skipping of records avoid a call to NextRecord immediately following a call to DeleteRecord. Profile attributes.  Logical constant values  Use logical constant in place of literals  E. – LOV.  Dynamic values  Use dynamic values instead of hard coded values.Basic Scripting Guidelines contd. } finally { // destroy object return true.  Return Statement  A return statement should be judiciously used. . } catch (e) { // treat error return false.Basic Scripting Guidelines contd.  E.  Thus error handling is suppressed.. try { return true. }  The code is supposed to return false for an exception  But it returns true in finally block.g.  Improper use can lead to unexpected result. Name() == “Service Request”) { Do something } if there is no parent bus comp.Name() == “Service Request” Solution if (this.: if (this. the expression evaluates to NULL.ParentBusComp().ParentBusComp().Basic Scripting Guidelines contd..g.  Failure to do so might result in inconsistent behavior and crashes.  E.Name() == “Service Request”) { Your logic } } .  Defensive Coding  Always use defensive coding to check for NULL values.ParentBusComp() != null) { if (this. sRowId = Inputs.g.  E.GetProperty ("Object Id"). especially for search spec artifacts. ExecuteQuery(ForwardOnly).. } .  Failure to do so might lead to a Full Table Scan.  Same should be done while querying a DB table. sRowId).Basic Scripting Guidelines contd. if ( sRowId != "" && sRowId != null) { SetSearchSpec("Id". Siebel logging and Spooling  Logs allow monitoring the events in background.  Spool allows us to monitor SQL statements on Siebel DB  There are 2 types of clients  Web client  Dedicated client  Web client  The only way to monitor logs is to increase log levels on server for the object manager or any particular component.  The keyword Begin: Execute[BC Name] precedes the SQL statement. .  Logs Events and SQLs. WorkflowProcessManager  Dedicated client  Logging  Set environment variables  SIEBEL_LOG_DIR : Path where the sieblog is created  SIEBEL_LOG_EVENTS : Log level.  E.g. Can be from 1.4  Level 4 logs maximum details. txt.  It can help you in assessing the time taken by the various SQL statements when you encounter performance issues.Siebel logging and Spooling contd.  It allows you to identify the SQL statement being executed when an SQL error code is returned..  When data appears to be missing from a view.  Dedicated client  Spooling  Introduce /s in client target followed by path for SQL. you can identify the SQL used to retrieve that data  Siebel tools  Spooling  The process for spooling using tools is similar to dedicated client . Break (CTRL+BREAK) Stops the execution of the currently running script. Toggle Breakpoint(F9) Sets or removes a breakpoint on a specific line of code. ClearAllBreakpoints(CTRL+SHI FT+F9) Removes all breakpoints from the current script routine. End Stops the execution of the application and returns to the Siebel Script Editor Restart(SHIFT+F5) Restarts the application if a break has occurred.Debugging script  Siebel tools has a debug menu option that allows various debug and check activities Debug Options Description Check Syntax Compiles the current script and verifies syntax. Step To Cursor(CTRL+F8) Executes all lines of code up to the line selected . Start(F5) Starts the application. Watch (SHIFT+F9) Displays script variables and their values in watch window Calls (CTRL+L) Contains a list of subroutine and function calls that were executed prior to current line Step Into(F8) Executes the next line of script code. A dialog box with startup parameters also appears. ExecuteQuery(ForwardOnly).  These tables are queried when we access data from UI or we can explicitly query in a script. ActivateField(“ Field names ").g.  Then invokes BusComp_Query  Called after execute statement and before data is retrieved. } .  Invokes BusComp_PreQuery  Called before execute statement  Cancel operation may stop Siebel code execution but any script after cancel runs regardless of it.Querying Siebel DB  Each BC (other than VBC) maps to a Siebel DB table and BC field maps to a column in the table. ClearToQuery(). in scripting    with(BC name) { SetViewMode(AllView).  E. SetSearchSpec(Search Spec).  Can have multiple instance of it.e.  Should activate all BC fields that are queried and that are retrieved based on the query  Analogous to Select statement. 1 bcName.g.SetSearchSpec(“ Position ”.SetSearchSpec( “ Position ”. what data will be displayed  AllView will set visibility to all..  ActivateField(Field names)  Must come before executing query at all costs.  bcName.Querying Siebel DB contd.‘ Admin’ ).  SetViewMode(AllView)  Sets visibility mode of BC i. . To be used carefully  E.’‘ABC’ ).  ClearToQuery  Clears any old SearchSpec that might already be associated with the BC.  SetSearchSpec(Search spec)  Analogous to Where clause.  bcName. 3 bcName. Tools spec : [Position] = ‘ABC' AND [Status] = 'Sold‘  Resulting where : WHERE Status = ‘Sold’ AND (POSITION = ‘admin’ AND POSITION = ‘ABC’)  SetSearchExpr(Search exp)  Set a search expression rather than multiple search spec.‘ Admin’ )..‘ Admin’ ).g.SetSearchSpec(“ Organization ”.Querying Siebel DB contd.SetSearchSpec( “ Position ”. .  ExecuteQuery(ForwardOnly)  Executes the query  Always use ForwardOnly as cursor mode to improve performance.  E.g.  Resulting where : WHERE position = ‘Admin’ AND organization = ‘ABC’  A search spec set in tools and search spec in script are automatically ANDed by Siebel without any over writing.’‘ABC’ ).  E.  Resulting where : WHERE position = ‘ABC’. 2 bcName.SetSearchSpec( “ Position ”. Best practices . Impact on Performance  There are 3 types of code that impact overall application performance  Code that increases Application processing (by effect of CPU consumption)  Code that increases Application memory and memory footprint on Application Server  Code that increases n/w (server roundtrips) . Increase in Application Processing  Examples of code which increases processing:  Frequently fired events  Applet_ChangeRecord  Applet_ChangeFieldValue  BC_ChangeRecord  BC_PreSetFieldValue  BC_SetFieldValue  Any code in these events causes heavy processing on Application Server Side  Events that should not have any code present include:  BC_PreGetFieldValue  Applet_PreCanInvokeMethod  Use of calculated fields in Search Specification (See slide Search Specifications) .  Unconditional Execution of code especially on pre – events/Frequently firing events  WebApplet_PreCanInvokeMethod  WebApplet_PreInvokeMethod  Applet_PreInvokeMethod  Applet_ChangeRecord  Applet_ChangeFieldValue  BC_ChangeRecord  BC_PreSetFieldValue  BC_SetFieldValue  Service_PreInvokeMethod ..Increase in Application Processing. .  Bad Example – Unconditional execution .Increase in Application Processing . .  Good Example .Unconditional execution .Increase in Application Processing . Iteration through the records of the Parent BC forces the corresponding child (and potentially grandchild) BC to be re-queried. The logic inside while loop should be optimum  The logic of while loops must have positive exit route. this.  Large while loops  When while loops contain lot of processing including instantiation of objects..Increase in Application Processing . This will save CPU processing . it causes high CPU. The simplest alternative to the problems caused by the above is to move the instantiation of the Child BC outside of the parent BC iteration.BusComp()  If these are used more than once in a code. Under no condition should it go into infinite loop  Nested Queries  Nested query loops exist when a parent and child BC exist constrained by a link. store the reference in a local variable and use the local variable instead.  Special calls .TheApplication(). .  Bad Example – Object Instatiation inside While loop .Increase in Application Processing . .Increase in Application Processing .  Good Example – Object Instatiation inside While loop . Using switch or select case statements can frequently compact multiple pages of script into a single page. .Increase in Application Processing . then compared to different values.  Use of switch case  When you need to evaluate and compare a single expression with many different possibilities. the fastest and most readable way of doing this is to use switch (eScript)  It is more efficient because the expression is evaluated once..  It is easier to read than a series of nested if…else if statements. Application Server Memory  Examples of code which increases Application memory:  Undestroyed objects  Garbage collector eventually collects undestroyed objects. memory is freed up instantly  Profile Attributes in Search Specs of Cached BCs  Do not add ProfileAttr in Search spec of cached BC as it leads to heavy use of memory. PickList Hierarchical etc) are cached. We have seen the instances where vanilla picklist BCs (PickList Generic. This increases memory footprint . If we use ProfileAttribute then it won’t use cache result but it will do the query every time as ProfileAttribute value is dynamic.  High Memory accumulation because of caching as every call Siebel treats it as different and it caches it. but if the objects are destroyed. .Application Server Memory .  The ForwardBackward option degrades performance and uses memory to cache the records.  ForwardOnly delivers the best performance as it only allows records to be processed in a sequential manner but this is usually the only requirement.. use ExecuteQuery(ForwardOnly) for all instances apart from those scenarios when it is essential step backwards through a recordset. Usually the only reason that the ForwardBackward cursor is required is when the queried Business Component exists in the UI or a DeleteRecord is executed as the cursor will attempt to locate the previous record. they remain in memory for longer time increasing memory  Using ExecuteQuery(ForwardBackward)  When executing queries in code.  Examples of code which increase memory continued…  Instantiating objects only when they are required  If they are instantiated much before they are used. .DB Server impacting code  A code that does not comply with the best practices hinders the performance of the database.  A badly performing sql increased DB CPU and causes whole application to slow down.  Check the explain plan of the sql to ensure that appropriate index is used  Take help from Performance Team in case of doubt to verify cost of SQL .DB Server impacting code  Does the Search Specification use a field that is Index supported?  Search Specification must have at least one field that uses index and is used in  Does the Search Specification allow Oracle to choose a suitable Index?  The order that fields appear in the search specification will affect their use of an index: if a search specification details name and then location. but the index details location and then name. the index will not be used. ) . however in most cases.DB Server impacting code …  Is your Search Specification going to execute SQL on a large or volatile table?  You must check the explain plan of the SQL with the help of Performance Team  DB Stats impact the selection of index by database. the results are returned in a raw format to the object manager and must be sorted there leading to significant delays in displaying information. SQL should be checked for explain plan in eSnap  Evaluate closely the usage of calculated fields in Search Specification?  Avoid the usage of Calculated Fields in Search Spec as it causes more CPU  consumption on Database side as well as Application Server side  (Search specification that includes a calculated field: If the RDBMS supports the calculation. performance may not suffer. DB Server impacting code …  Does the sql have a positive search criteria  In order for SQL to perform well it tends to require positive search criteria . IS NOT NULL.and OR. then get the sql reviewed by Performance Team . EXISTS don't fit into this category.  If these usage are unavoidable. NULL. DB Server impacting code  The coding parameters that impact the DB performance are:  Search Specification  Wrong design of search specification causes Full Table Scan or a badly performing sql  Sort Specification  The Sort Specification should be made up of one of the fields used in a Search Specification  In almost all situations. .  Do not include joined fields in sort specifications. the Sort Spec should match the Index used by Oracle as this ensures the data is returned in the desired order. Try to use Thin BCs as much as possible. . Hence instantiate child BC only when parent BC record is found. When parent and child instantiated together and then parent is queried then child BC as well queried. This will fire one extra query on child BC.  Do not instantiate child and Parent objects together.  Do not instantiate parent and child together at top always. If it is the only option make sure you take out SQL arising out of this and get it reviewed  Leads to Bad SQL with high Buffer Gets (Logical IO's)  Use of Thick BCs  Use of Thick BCs causes heavy sql.DB Server impacting code  The coding parameters that impact the DB performance continued…  Use of RefreshRecord Method  Avoid using RefreshRecord anywhere in code (especially on Order Entry .Line Items). DB Server impacting code  Bad Example – Object Instantiated Together . DB Server impacting code  Good Example .Object Instantiated Seperately . Increase in Server Round Trips  More use of profile Attribute in Browser side  More number of server calls from browser side . Scripting : Execution flow . Scripting Flow Diagram . Enabling a button  To enable or disable a button . Clicking a button . 8 6 .
Report "Siebel eScript.pptx"
×
Please fill this form, we will try to respond as soon as possible.
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
Copyright © 2025 DOKUMEN.SITE Inc.