Siebel 开发规范

2023-10-29

Siebel Configuration and Development Guideline 

1       Objectives. 3

2      Application Development and Customization Guidelines. 4

2.1         Points to Ponder4

2.2         Configurations of Siebel Objects. 5

2.3         Top Ten Configuration Tips. 6

11.      Development Environment. 7

2.4         Configuration File and Siebel Repository File Standards. 7

2.5         Developer Configuration. 8

3      Configuration Standards. 8

3.1         Application Definition. 8

3.2         Projects. 9

3.2.1         Project Definition. 9

3.2.2         Checking in and out Projects. 10

3.3         Object Naming Conventions. 11

3.4         Presentation Object Configuration. 12

3.4.1         Screen Definition. 13

3.4.2         View Definition. 13

3.4.3         Applet Definition. 14

3.5         Data Object Configuration. 16

3.5.1         Business Object Definition. 16

3.5.2         Business Component Definition. 16

3.5.3         Link Definition. 19

3.5.4         Using Standard Extension Tables. 19

3.5.5         PickList Definition. 20

3.6         List of Values. 20

3.7         Commenting in Siebel Tools. 20

4      Database Extensibility. 23

5      Siebel Scripting Standards and Guidelines. 24

5.1         General Guidelines for accessing Siebel objects via Siebelscripts. 24

5.2         Rules for Siebel eScript Variable and Object Names. 24

5.3         Use of Try Catch Finally Blocks. 25

5.4         Scripting Techniques. 26

6      Visibility Guidelines. 27

7      Internationalization.. 27

7.1         Configuring Fields for Universal Time Zone. 28

7.2         Configuring Multilingual List of Values. 28

7.3         Configuration Considerations. 29

8      Repository Backup. 29

 


1       Objectives  

The intent of this document is to provide a guide to developers toset standards for designing the graphical user interface as well as theunderlying logic driving the Siebel application.  The standards document provides a tool thataids new developers with understanding the configuration team’s developmentapproach.  This effectively decreases theamount of time needed for new developers to become familiar with the currentdevelopment process and ensures that the application maintains a consistent‘look and feel’.  The intent of thisdocument is to ensure that any configurations performed:

 

·        are accurate

·        provide an intuitive userinterface

·        are easy to maintain andupgrade

·        and, maintain optimumperformance of the RCM Application

 

This document is a collection of suggestions for developmentprocedures and standards specific to Siebel application development.  The document is not intended to give step bystep instructions on how to perform specific configurations.

 

 

Thefollowing abbreviations are used throughout this document:

 

MVF

Multi-Value Field

BO

Business Object

MVG

Multi-Value Group

BC

Business Component

MVL

Multi-Value Link

OBLE

Object List Editor

SRF

Siebel Repository File

OE

Object Editor

CFG

Configuration File

CDM

Conceptual Data Model

UI

User Interface

VWT

View Web Template

AWT

Applet Web Template

VWTI

View Web Template Item

AWTI

Applet Web Template Item

 

 


2     ApplicationDevelopment and Customization Guidelines

2.1       Pointsto Ponder

a.   Keep it simple.  Always take the time up front tolook at different options to implement a solution.  The first solution is not necessarily thebest or the most efficient.  If itrequires significant configuration, take a step back and consider doing it adifferent way.

 

b.   Keep it vanilla.  Always make an effort to keepthe application as vanilla as possible and to leverage vanillafunctionality.  Read the documentation onthe module and any applicable Technical Notes. There are often rich pieces of vanilla functionality that gounnoticed.  Take a look at the Clientdemo to see how it works and the Tools demo to see how it has beenconfigured.  The smaller amount ofconfiguration the easier the application will be to maintain.  We will not be renaming any of the vanillaobjects.

 

c.   COPY vs. CREATE: Whenever possible, you shoulduse existing Siebel objects versus creating new ones.  This will reduce redundancy in theconfiguration.  However, there are someinstances where creating a new object is necessary.  In this case, you should copy an existingobject, if possible, and make the necessary additions.  This will save development time and make iteasier to set the relevant properties for that object type.  

 

d.   Upgrade Ancestor: When copying Business Components, Applets, Integration Objects and Reports,use your best judgment to set the “Upgrade Ancestor” property.  If you want the cloned object to behaveexactly as the original, with minor modifications (e.g. search spec, sortspec), you should set the upgrade ancestor.  By setting the Upgrade Ancestor property, Siebel will upgrade the objectwith new functionality.   When Siebelupgrades the object, nothing is removed, it does not affect any custom fields,etc. that you have added.  Considerfollowing scenarios if you are stumped with upgrade ancestor property.   You would not want to use this property ifthe object is completely different from the original from a functionalperspective. You would set the Upgrade Ancestor property if you want the objectto maintain similar functionality (special class logic, User Properties, etc)as the original. 

 

e.   Avoid creating new Business Components. This will result in an application that is easier to maintain, andeasier upgrades. If there is an absolute necessary to create a businesscomponent, use your best judgment to set “Upgrade Ancestor” property toinclude/exclude new business components during an upgrade.

 

f.    Avoid deleting existing Siebel data management objects.  In general, you should avoid deleting existing Siebel data managementobjects even if you do not appear to be using them in your configuration.  If you must remove an object, inactivate itwith caution rather than deleting it. You can delete fields/columns from applets.  However, if the applet is based on aspecialized class, it is suggested that you inactive the field or list columnversus deleting it.

 

g.   Extension table or column against database?  Ifyou want to store additional data that should always be displayed when the baserecord is displayed, extend the base table to store this data.  By doing this, the extra join to theextension table is avoided and performance is improved.  If you want to display a large number ofadditional profiling fields together on one view, use the extension table,either using the pre-defined static columns or by manually adding additionalcolumns.

 

h.   Follow the project naming conventions. When creating new objects in Tools, be sure to give the object a namethat complies with the project naming standard. For the HW Siebelimplementation, always preface the name of the object with “HW” For example, if you create a new field and you want to call it TotalAmount and it is different from the OOB field, name the field “HW TotalAmount”.  This will make it much easierfor all developers to identify new objects.

 

i.     Always consider performance.  Try the following tips: 

 

§  Outer joins are not necessary formandatory foreign keys

§  Use primaries for multi-valuegroups.

§  Use primaries for multi-valuefields in form applets.

§  Keep the number of businesscomponents used in a view small.

§  Ensure indexes exist to supportsort and search specifications. Indexes cannot span multiple tables.

§  Avoid sorting on un-indexedcolumns.

§  Avoid setting the Force Activeproperty of joined fields to TRUE.  Evenif the field is not displayed, the join will be performed to retrieve the valueof that field.

§  Avoid setting the linkspecification property to true.

§  Avoid using certain functions forcalculated fields that will be used in a search spec.  For more information consult the Siebel ToolsReference Guide.

§  Avoid calculated fields that arenot supported by RDBMS.

§  Avoid Specifying outer joins whenrelationship is mandatory.

§  Avoid creating a large number ofjoins in a business component.

§  Avoid displaying totaled columnsin list applets unless the number of records will always be small.

§  Spool out the SQL using the /Sparameter and check the query plan in the server and local database

§  Always test against a realisticdata set and distribution

§  Use switch statement inpreference of if…elseif. Switch statements group together areas offunctionality in a way that makes it far easier to locate and understand scriptflow later in the application lifecycle

§  Cursor Mode, preferably use“ForwardOnly”

 

j.     Plan your configuration project from the top down. First determine what the UI andapplication will do when you have finished, then determine what changes to thebusiness objects layer this will require, and finally determine what changesyou must make to the data layer.

 

k.   Make the changes from the bottom up. First, edit the data layer definitions (ifnecessary), then, edit the business object layer definitions as required,finally edit or create the templates and UI layer definitions to display thedata correctly.

 

l.     Avoid using negative terms for true/false. “Not Require” vs “Optional”. 

 

2.2       Configurationsof Siebel Objects

 

Developersshould follow this workflow to complete their activities:

 

1.   Lock out Objects/Projects for making changes

2.   Find objects in your Siebel tools

3.   Work on your objects.

4.   Complete your objects.

5.   Test and Verify.

6.   Check in and finish objects.

 

 

2.3       TopTen Configuration Tips

 

1.    Think vanilla - Leverage vanilla or existing configuration.

2.    Modularize, be dynamic - Avoid configuring the same thing twice.

3.    Avoid scripting, it’s hard - Avoid VB/eScript unless absolutely necessary.

4.    Test, test, test! - Test your work thoroughly and locallybefore check-in.

5.    Comments, be verbose - Provide meaningful comments with datesand initials.

6.    Check in regularly  - Check in stable and unit tested projectsregularly to avoid “big bangs” and hoarding projects

7.    Avoid new BCs, think next upgrade - Avoid creating new Business Components.Use Upgrade Ancestor property wisely.

8.    Research, before asking - Check Bookshelf and SupportWeb before askingcolleagues.

9.    Avoid Deleting, inactivate - Avoid deleting dataobjects.  Inactivate instead(cautiously).

10.   Realitycheck - If the configuration effort is huge, discuss other options


11. DevelopmentEnvironment

Oraclerecommends creating a complete configuration environment that includes both aSiebel Database Server and a Siebel Application Server. This environment mustbe completely separated from the production environment. Only authorizeddevelopers and Data Administrator should have access to the developmentenvironment. The authorization can be obtained from the Project Manager orFunctional Team Lead. There should be no configuration work performed in theproduction environment. You (authorized developers) should also have a separatetest environment into which your configuration can be migrated for systemtesting prior to installation in the production environment. As with theconfiguration environment, the test environment should include both a SiebelDatabase Server and an Application Server.

Theconfiguration database will store the working copy of all repositories beingconfigured by your developers. Configuration work should only take place on theconfiguration database. Once you have finished configuring a repository, youwill use the Siebel DEV2PROD utility to transfer that repository to a testenvironment and to a production environment, please refer to subsequent sectionfor more details on backup.

Beforemigration of the Development Repository to any Testing or Productionenvironment, all projects newly created or modified should be unit tested andreviewed by either the Configuration Team Lead or his delegates.

Afterall reviews and corrections are performed with satisfactory results,Configuration Team Lead will recommend the qualified projects to FunctionalTeam Lead for approval to migrate to the destined server.

 

2.4       ConfigurationFile and Siebel Repository File Standards

It is agood practice to be consistent in the naming, location, and contents of theSiebel configuration (cfg) and Siebel Repository File (srf) for all developerworkstations.  This will make it easy fora developer to work on different machines. This will also allow consistency within each of the applications.  CFG and SRF files can be copied from LAN.

 

Application

Siebel CFG File

Siebel Repository File (srf)

Siebel Loyalty

loyalty.cfg

Siebel_sia.srf

Siebel Loyalty eMember

eLoyalty.cfg

Siebel_sia.srf

Siebel Loyalty eMember

loyaltyscw.cfg

Siebel_sia.srf

 

2.5       DeveloperConfiguration

Local Environment:Siebel developers should be set up for local development as indicated inthe Siebel Tools Guide.  Siebel Toolswill have a local development database on each Siebel configurator’sworkstation.  This database should beinitialized via Siebel Remote and is located in c:\Program Files\Siebel\7.8\WebClient\Local and will be named sse_data.dbf by default. 

 

All development work should be done on a local database (sse_data.dbf)within the Siebel directory.  Thisapproach allows proper configuration control. It also serves as a control and checkpoint against the newconfigurations before they are checked back into the server and made availableto the entire development machine. Development work should NEVER be done on the server.

 

For consistency, all views should be constructed and verified in thefollowing font and screen resolution standards. 

 

Target BrowserGroup and Language:

 

Target Browser Group: I.E 6.0.

Set the tools language mode to ENU by navigating to View -> Options-> Language settings.

 

System Settings:

Resolution:  1024 x 768 and 800x600

Font Size:  Small Fonts

SiebelConfiguration File Settings:

LargeFont                = Verdana-8-normal

SmallFont                = Verdana-8-normal

DefaultChartFont         = Verdana-10-normal

NavBarItemFont           = Verdana-8-bold

NavBarSelectFont         = Verdana-8-bold

NavBarTitleFont          = Verdana-10-bold

AppletTitleFont          = Verdana-10-bold

 

3     ConfigurationStandards

3.1       ApplicationDefinition

We will use “Siebel Financial Services” Application, existing in theSiebel Repository to store the configured application.  Make sure to reference your webpages/menus/logos/screens/page tabs to this application within Tools. Assignthe application level menu-items to the “Generic Web Menu”.  This project will be shared among all developers.

 

 

Application

Application Object Name

Application Object’s Project

Siebel Financial Services

Siebel Financial Services

FINS Financial Services

 

a.   Page Tabs: Page Tabsshould be assigned to those screen groupings that will be accessed by the userfrequently.  The Name of the Page Tabshould begin with a capital letter and logically describe the views that fallunder the tab (i.e., Contacts).  Page Tabnames should be plural (e.g., Contacts and not Contact).  Note: Avoid assigning long names to the application’s Page Tabs.  For initial rollouts, consider limiting thenumber of Page Tabs utilized in the application so as not to overwhelm newusers. The sequence of the screens in the Screen Menu Item and Page Tab shouldcorrelate with the business process flow. 

 

 

b.   Symbolic String:Symbolic string is commonly used when you work on Siebel application. Sincestrings are used through out the application, be sure the new definitions alsomake sense in other area. Do not modify the existing string, create a new oneto meet your requirements instead.

 

 

c.   Error Web Page: Set the error web page in theapplication object definition. This will ensure that a standard error page willbe displayed when the error occurs.

 

 

3.2       Projects

3.2.1  ProjectDefinition

A project is a named set of objects. This is used to group related object definitions. The projects will beused to check in, check out, lock for modification and compile.  There are several general things to rememberabout projects:

 

a.    Once you create a project, youcannot delete it.

 

b.    Never change the name of aproject with which standard Siebel Object definitions are associated.

 

c.    All the envisioned projectsshould be created before any configuration is started.  A single individual will do this task.  As a general rule, a developer should notcreate new projects without first coordinating with Oracle Siebel ConfigurationLead.  Special care should be taken increating the new projects as once they are created; they cannot be renamed ordeleted.

 

d.    Never move an object definitionbetween projects. Changing the project of an object causes considerable harm toALL developers and can cause work to be lost. All existing objects in Siebel should remain assigned to their vanillaSiebel (or current) projects.  However,there are some instances where custom object definitions movement acrossprojects is necessary.  In this case,Oracle Siebel Configuration Team Lead should perform this activity usingfollowing steps as guidance.

 

·        Check out both projects.

·        Change the project property of the object definition you intend to move,so that reflects the name of the new project.

·        Check in both projects together (failure to do so can leave therepository in an inconsistent state).

·        Inform all colleagues they must do a simultaneous get of the two projectsbefore any further development on those projects

 

All newprojects to be created start with “HW”.  All projects are singular (e.g., HW Product(UI) and not HW Products (UI).  

 

Thefollowing tables represent all the custom projects to be created:

 

Project Name*

Description

HW Project Name

HW project for all new non-visual (data manipulation) objects such as Business Objects, Business Components, etc.

HW Project Name (UI)

HW project for all new  visual (presentation) objects such as Views, Applets, etc.

 

 

*Replace Project Name with an entity name

 

 

3.2.2  Checkingin and out Projects

There are several important things to remember about checking projectsin and out:

a.    Share with others. You are most likely working with other developers.  Avoid holding projects.  Only check out projects that you absolutelyneed and check them back in as soon as you are done. 

 

b.    Work locally. If you want to try out something small, avoid checking outprojects.  Lock the project locally andthen test out your solution.  This meansboth you and the developer harassing you for the project can worksimultaneously.  If you are happy withyour work, export it, check out the project, and then import it.

 

c.    Check in regularly (Only stableand tested objects).  If you are working on a largeunit, check in your work regularly to avoid “big bangs” to the repository.  This will make things much easier totroubleshoot if there are problems with your configuration.  Avoid checking in unstable projects, Check in only stable and unit tested objects/projects.  Do a “Diff” on the project before every checkin and make sure that you are checking in correct and stable objects.  This will eliminate the risk of repositorygetting corrupt.

 

d.    Do regular “Gets.” Before you approach other developers informing them that something isbroken, be sure you have done a “Get” of the appropriate project (and relatedprojects).  This will save you both timeand embarrassment.  In addition, duringthe development phase, you should be kicking off a “Get” of all updatedprojects before you leave at night.  Youcan then compile these projects first thing in the morning and proactivelyplace the new SRF in the designated directory on the LAN for the otherdevelopers.  This saves time and money.

 

e.    Avoid canceling check ins/outs. This is neither a good practice for your local repository nor theserver’s.  In theory, Siebel can fullysupport canceling these actions (hence the “Cancel” buttons) but this canoccasionally cause corruption and can leave a repository in an unstablestate.  Just be patient, wait for theprocess to finish, and then move on.  Youand your colleagues will be much happier and the overall likeliness of problemsis greatly reduced.

 

f.     If in doubt, leave it out! If you have a project checked out and someone else is asking for it,think about changes you’ve made before you check it in.  Do a “Diff” on the project before every checkin.  If you have any uncertainty aboutthe stability of the project, do not check it in.  Export your work, do a “Get” over theproject, and then check it in.  It is notworth the hassle of checking in a broken project and watching your colleaguestry to figure out what you broke.

 

g.    Errors, report them immediately. If you receive an error checking a project in or out, report this toyour Oracle Siebel Configuration Team Lead and the Oracle Siebel Administratorresponsible for server repository maintenance. Do not ignore this problem and continue working.  There could be a problem with the repositorythat needs to be handled immediately.

 

h.    Never login tools using genericlogin id. Neverlogin in tools using generic id such as “SADMIN” when checking out projects.This is not best practice in terms of keeping track of developer’s activities.

 

 

3.3       ObjectNaming Conventions

Thefollowing naming conventions should be used for all new or copied objects (withthe exception of backup copies). However, no Vanilla Siebel objects should be renamed to follow theseconventions.  All new or copied objects, whether a data manipulation object or a datapresentation object should begin with HW(the only exception is Links.  Eachtype of object should follow the following guidelines:

 

Object Type

Naming Convention

Example

Business Component

HW Buscomp

HW Address

Business Object

HW Busobj

HW Account

Link

Parent Buscomp/Child Buscomp

Quote/Contacts

Pick List

HW Picklist

HW Account Picklist

Applet

HW List Applet

HW Form Applet

HW Entry Applet

HW Tree Applet

HW Pick Applet

HW MVG Applet

HW Associate Applet

HW Chart Applet

HW Quote List Applet

HW Quote Form Applet

HW Quote Entry Applet

HW Quote Tree Applet

HW Quote Pick Applet

HW Quote MVG Applet

HW Quote Associate Applet

HW Quote Chart Applet

View

HW View

HW Quote View

Screen

HW Screen

HW Quote Screen

Report

HW Report

HW Quote Detail Report

 


3.4       PresentationObject Configuration

All data presentation objects canbe modified if little or even moderate modifications are required to thatobject (the only exception is Screens). However, before any major modifications are made to that vanilla Siebelobject, a backup of that object should be made. To make a backup of the object, copy the object and keep the originalname with “VANILLA” added to the end of the name.  Finally, inactivate the backup object.    If substantial change is required to be madeto the presentation object, and then a new object should be created (this canbe copied from an existing object). These new and/or copied objects should begin with “HW”.  Data Presentation objects include:

 

q Applets (List, Form, Tree, Pick, MVG, etc.)

q Views

q Screens

 

3.4.1  ScreenDefinition

·        New screen names should always begin with “HW” (i.e., HW ContactScreen).  This name should also logicallydescribe the overall purpose of the screen within the customized application.

 

·        For each screen definition, a default view must be assigned.  This view should always be the first positionof the menu item on the Screens menu and/or the View-bar for the application.

 

·        If a Siebel defined screen will not be used in the application, use theResponsibility Administration Screen to disassociate all views on the redundantscreen from those responsibilities used by HW project.  This approach reduces the amount ofconfiguration that you need to maintain and upgrade.  It also provides for an easy upgrade pathshould you decide to expose the screen or views in a later phase.  At that time no configuration or softwareupgrade would be required, you would merely reassign the views to the relevantresponsibility.

 

3.4.2  ViewDefinition

During theDesign stage of Siebel implementation the design team should define the viewsrequired for the implementation.  Theseviews will usually be in one of the following categories:

 

·        Views that closely align with an existing view in Siebel, require thesame applet layout, but require other configurations such as a title change,inactivating or adding fields, changing field labels etc.  The recommended approach for this category ofview is to configure the existing view object.  Most configurations in this category willactually be performed on the applets rather than views.

 

·        Views that closely align with an existing view in Siebel but require amoderately different applet layout, possibly displaying applets based on newbusiness components, or adding toggles. The recommended approach for this category of view is also to configurethe existing view object.  Thedesign may or may not require configuration of the existing applets also.

 

·        Views that consolidate two views already existing in Siebel.  The recommended approach for this category ofview is to configure one of the existing views by modifying the viewobject, and remove visibility to the redundant view using the ResponsibilityAdministration Screen.

 

·        Views that do not have an obvious equivalent already existing inSiebel.  These will tend to be views thatexpose new functionality specifically configured for your implementation,exposing new business objects, and/or business components.  The recommended approach for this category ofview is to create a new view object, and to avoid extensively modifying anexisting definition that will not be utilized in your implementation. Theresulting configurations will be much cleaner, and easier to maintain andupgrade (both manually and automatically).

 

Eithercopy an existing view or use the View Wizard to create new view and assignapplets. The default mode for the applets in a new view is base. Set the appletmode appropriately.

 

To enable thread bar, ensure that the applet template identifiedincludes an “SWE threadbar” tag

 

3.4.3  AppletDefinition

 

An appletis a visual representation of underlying business objects and businesscomponents.

During theDesign stage of Siebel implementation the design team should define the viewsrequired for the implementation.  Theapplets displayed on these views will usually be in one of the followingcategories:

 

·        Applets that closely align with an existing list applet in Siebel butrequire minor configurations such as a title change, inactivating or addingfields, changing field labels etc.  Therecommended approach for this category of applet is to configure the existing appletobject and its child objects. 

 

·        Applets that represent a relationship already existing in Siebel (e.g. Opportunity contacts), but require extensive modificationof the existing applet to produce a new applet web template.  The recommended approach for this category ofapplet is to create a new applet object. The resulting configurations will be much cleaner, and easier tomaintain and upgrade (both manually and automatically).

 

·        Applets that do not have equivalent applet already existing inSiebel.  These will tend to be appletsthat expose a new business component.  A newapplet should always be created for this category of list applet. Makesure you are not using the specialized class when creating new applets.  Select the appropriate applet web templatefor each applet mode. Edit Mode for Form Applets, Edit List Mode for ListApplets

 

Applet Toggle: Whendefining applet toggles, ensure that the applet template identified includes an“SWE togglebar” tag

 

Pick,MVG and Associate Applets

 

·        All Pick applets must display the Find Box functionality in the upperright corner of the applet.

 

·        All new Pick, MVG, andAssociate applets should be copied from an existing Pick, MVG, or AssociateApplet with the same template/style.

 

·        Wherever possible, Pick, MVG, and Associate Applets should be sharedacross the application. Each business component belongs to a particular workstream, some business components are cross functional. It is the responsibilityof the work stream lead to make sure duplicate PickLists and Pick Applets areminimized in their work stream business components.

 

Form Applets and Applet Web Templates

 

Text Labels:  Alltext labels on forms should be left aligned. All text label names should be prefixed with ‘Label’.  Avoid display names that occupy a largeamount of applet real estate.  Useabbreviations, if possible.  Avoid usingtext attached to check box controls. Instead, re-size the check box control so that only the box remains andformat a regular text label so that it is aligned with the box control.  Following these steps allows more flexibilitywith the text label and the label does not become grayed out when the controlitself is read only.

 

Tab Order: Tab order should follow the steps the userwill take while manipulating data on the form applet. Read only fields shouldnot have a tab stop. Exceptions are read only fields that have MVG glyphs andpopup edit glyphs.

 

Glyphs: Read only controls and calculated fieldsshould not display any glyphs.  Disablethese glyphs by Specifying Runtime = False and Popup Edit = False on thecontrol definition.  Exceptions are whena glyph is needed to open a MVG applet, Detail applet, or popup edit field toview additional information.

 

Text Control: All text control fields should be alignedto the left.  This includes calculatedcontrol fields.  Number control fields(including Currency) should be aligned to the right. If the value of a field isnot entirely displayed within the Control, the HTML type for the control shouldbe TextArea, and the HTML Attributes should define what the dimensions of thefield are. All controls should be assigned the same name as the ‘Field Name’that the control is accessing (i.e., If the control displays the value held inthe ‘Account’ database field, the name of the control should be ‘Account’).

 

Attempt to place MVG applets in form appletsas opposed to list applets.  This practice can improve theapplication’s performance since the children of only a single record needs tobe retrieved from the database.

 

Search Specification: The Search Specification forapplets is functional in Siebel Tools. Use of the Search Specification propertyon an Applet should only be used when such functionality is supported by thedesign of the application.  The fieldsused in the Search Specification should be included in an index for thebusiness component data entity.

 

List Applets

 

  • All list applets should be assigned a title that logically describes the information displayed in the applet.  Titles should be in plural.

 

  • All list applets should display a record tracker (i.e., 1 of 20 records).

 

  • Every column in the list applet should be assigned a logical display name.  This display name should remain consistent across the application.

 

  • Read only and calculated fields displayed in the list applet should not display a glyph.  Disable these glyphs by specifying Runtime = False and Popup Edit = False on the control definition.  The only exception occurs if a glyph is needed to open a MVG applet, Detail applet, or popup edit field to view additional information.

 

·        Whencreating list column definition set the appropriate HTML type for the control.

 

  • If the value of a field is not entirely displayed within the List Column its HTML type should be TextArea

 

  • Column widths should take into consideration the length of the display name and the length of data held in the field.  Generally, the entire display name should be visible to the user.  This is editable in the HTML Width property.

 

  • All check marks (DTYPE_BOOL) should be justified in the center of the column.

 

  • All text fields (DTYPE_TEXT) should be justified left in the column.

 

  • All date fields (DTYPE_DATE or DTYPE_DATETIME) should be justified left in the column.  The calendar popup should be available.

 

  • All number and currency fields (DTYPE_NUMBER, DTYPE_CURRENCY, AND DTYPE_INTEGER) should be justified right in the column.

 

  • All phone fields (DTYPE_PHONE) should be justified left in the column.

 

  • All numeric calculated fields should be justified right in the column.

 

  • Avoid placing an excessive number of columns in a list applet.  It is unlikely that a user will scroll through the columns unless they can do so quickly.

 

  • When creating a new list applet, consider using the ‘New’ option under the File screen menu in Tools.  This option walks the developer through the list creation including the assignment of business components, titles, and column order.  Note:  This method assigns each column a width of 20 and does not assign field level attributes.  The developer must assign these values individually to the list’s columns.

 

  • Use of the Search Specification property on an Applet should only be used when such functionality is supported by the design of the application.

 

  • Attempt to keep the Applet Titles as short as possible.  This allows for enhanced usability.

 

·        List applets require the list control in order todisplay the collection of list columns. Do not edit this control.

 

 

3.5       DataObject Configuration

All dataobjects (e.g., business components, business objects, PickLists, etc.) shouldbe used in their original form with little or moderate modifications.  However, before any major modifications aremade to that object, a backup of that object should be made.  To make a backup of the object, copy theobject and keep the original name with “VANILLA” added to the end of thename.  Finally, inactivate the backupobject. 

 

3.5.1  BusinessObject Definition

 

  • Typically you will create a new business object when your design requires a new screen that groups a number of new business components together or groups existing business components in a way that is not supported by an existing business object. 

 

  • Business Component declarations for a Business Object should be limited.  Only Business Components needed for application functionality should be declared under a Business Object.

 

  • Unused Business Objects: The recommended approach is to leave unmodified any business object definitions that you are not utilizing in your implementation.  These definitions should not be deleted as other objects may reference them.

 

3.5.2  BusinessComponent Definition

Creating and Modifying Business Components

 

·        Often, while configuring Siebel Enterprise Applications, a need arisesfor a business component that is similar – but not identical – to an existingbusiness component.   In such cases, youmust choose between a) creating an entirely new business component based on theexisting one, or by modifying the existing one so that it can be reused.   The latter solutionis almost always preferable because it reduces the number of businesscomponents, which, in turn, leads to a configuration that is easier to maintainand upgrade.

 

·        You can configure Siebel in a way that allows you to reuse the businesscomponent rather than creating a new business component.  Consider an implementation where one group ofusers may create opportunities, but another group can only edit existingopportunities.  Rather than creating anew business component and setting the No Insert property to TRUE, you caninstead define a new applet and set the No Insert property to TRUE for theapplet.

 

·        When creating new business components, you should avoid copyingspecialized business components, unless your intent is to create a ‘clone’ ofthe original business component.

 

·        In the event you have to copy an existing businesscomponent, use your best judgment to set the upgrade ancestor property whencopying the business components. This ensures that the copied businesscomponent is upgraded in the same way as the original business component.

 

·        Avoid assigning TRUE to the No Update, No Delete, No Insert, and NoMerge attributes on a business component definition.  This practice increases the reusability ofbusiness components for applet definitions (the No Insert, etc. attributes canbe assigned at an applet level).

 

·        When possible, avoid using long search specifications on BusinessComponents.  This will help theapplication’s performance.

 

Sort Specifications

 

Allbusiness components should be assigned a logical sort specification that sortsthe data for the user.   For performancereasons, avoid sort specifications thatuse joined, multi-valued, or calculated fields. If possible, always use an indexed column in the sort specification.  This will improve the application’sperformance.

 

Joins

 

·        A join defines a logical join between the business component base tableand another table.  A join should only beused when the resulting database join will retrieve only one record.  For example, a join is used to retrieve theprimary account for an Opportunity. 

 

·        Join fields are not editable unless they are joining to an intersectiontable, or to a 1:1 (_X) extension table. Intersection table join fields are only available and editable when theparent intersection record is active

 

·        A business component may have more than one join with the samedestination table if you specify an alias for each join using the Aliasproperty. 

 

There aretwo types of joins, Explicit and Implicit.

1.   Explicit Joins: The only column in this type of join, which is updateable, is theforeign key field.   You must Specify thetable to join to and whether it is an outer join.  The join specification definition containingthe source field in the parent business component and the destination column inthe child table.

2.   Implicit Joins: You do not have to define an implicit joinvia Siebel Tools.  These joins exist forall 1:1 (_X) extension tables and relevant intersection tables.  The tables are displayed as options in theJoin property pick list on the Field object. The columns from this type of join are updateable.

 

·        Join Specification Names should be named with the same value used forthe join’s source field.

 

·        The Alias property within a Join should be named with the same valueused for the Join’s source field.

 

·        Since unnecessary joins hinder the application’s performance, ensurethat all joins defined for a single business component are needed to supportthe business functions.

 

·        Specify Outer Join false when possible. However, in most cases this is not possible.  Only fields that are required should have anouter join set to false.  Wheninformation is being joined in, verify that records will be returned from thedatabase.  Joins with outer joins set tofalse will cause the entire record to not be displayed if the joinedinformation is not specified.

 

·        Siebel automatically has joins available for _X tables and intersectiontables.

 

Joinsand party business components

 

·        Use the implicit join for the extension tablewhen creating join for the party business components.

 

·        Create join specification based on PAR_ROW_IDwhen bringing party data into a non-party business component.

 

·        Use the appropriate explicit join whenbringing the party data into a party business component.

 

MultiValue Links

 

·        All multi value links names should be the same as the link’s destinationbusiness component (i.e., the name of the MVL Contact/Position should be‘Position’).

 

·        When possible, use a Primary IdField when defining a multi value link in the business component. This practice will improve the application’s performance.  If a Primary Id Field is specified, mark the“Use Primary Join” field as True.

 

·        The “Popup Update Only” should be marked as True for all MVGs.

 

·        In the case where large amounts of data are converted, consider theeffect of the Check No Match property. It will attempt to set a Primary wherethere is none, and can impact performance, depending on the state of the data.

 

Field Definitions

 

  • No Fields should ever be deleted from a Vanilla Siebel Business Component.  In addition, no Vanilla Siebel Fields should be renamed.  Fields can only be inactivated, but caution should be exercised in this practice.  As a general rule, if a Business Component field is not causing any problems or conflicts, then leave it alone (e.g., do not inactivate the field).  However, do not inactivate any field that is required.

 

  • New Business Component field names should closely match the agreed Display Names.  Alterations from this practice should only be made to remove special characters.  No new Business Component field name should contain special characters (e.g., !@#$%^&*():”’<>?/><.,~`+_-=£).  These special characters may be confused as operators if the business component field is used in a Siebel script.  For example, “Company #.” as displayed visually should have a Business Component field name of “Company Number.”

 

  • Do not explicity define system fields for a business component.

 

  • If the field is a check mark, the end of the name should be ‘Flag’.

 

  • Avoid assigning the ‘Force Active’ attribute to the business component and it’s corresponding fields to increase the application’s performance.  However, in some cases it is necessary to assign the ‘Force Active’ property for fields that are not exposed in an applet and are used in either a Siebel script or Correspondence mail merge.

 

3.5.3  LinkDefinition

When possible Specify the Primary Id fieldfor a Link.

Consider the business rules and implicationsof the following Link Properties.

 

·        Cascade delete – None, Delete, Clear

·        Search Spec – applied to child business component

·        Sort Spec  - only applied toassociation lists

·        Visibility Rule Applied – Never, Always Child, Drill Down

 

3.5.4  UsingStandard Extension Tables

_Xextension tables (1:1) - This type of extension table is basically just anextension of the base table record.  Youdo not need to create a new business component object when you use thesetables.  The _X tables are implicitlydefined as joins. 

 

If youhave to create an extension table to the party tables, create the extensiontable against the S_PARTY table and not the table where the core data isstored.

 

_XMextension tables (1:M) - This type of extension table allows you to create aone to many relationship with the record in the Siebel base table being theparent.  The following is a list ofguidelines to follow when using the _XM tables:

·        Create a new business component based on the relevant _XM table.

·        Create a ‘Type’ field based on the TYPE column and use this to filterthe records by Specifying it in the search spec for the business component.

·        Add the correct Pre Default Value to the Type field.

·        Use the NAME column to track the main data field. Alternatively, sinceNAME is a required column, a standard technique is to predefault it with the Idfield (ROW_ID column) to ensure uniqueness, in the case where you want to trackmultiple records in the table with the same value with the same parent id. 

·        Unique index is on PAR_ROW_ID, TYPE, NAME, CONFLICT_ID- you will need toconsider this in your design.

·        If displaying in MVGs, extend the base table to track primary values.

 

3.5.5   PickList Definition

 

  • PickLists with Lists of Values should be based on the Business Component “PickList Generic.” 

 

  • PickLists based on the List of Values do not require a Pick Applet.

 

  • A business component field that uses a PickList must have pick maps specified.  Failure to specify pick maps causes the drop down arrow to disappear.

 

  • Only bounded PickLists can be configured to be multilingual.

 

3.6       Listof Values

 

All Listof Value Types and List of Value Values must be up to dated. Siebel ApplicationAdministrator is responsible to upload these values to development, test andproduction environments. 

 

·        No Standard Siebel List of Value types should be removed orinactivated.  List of Value values can beinactivated, but not removed.

 

·        List of values that use an existing LOV type should keep that LOV typeunchanged.  All new LOV types should benamed as follows:  HW_NEW_LOV_TYPE (e.g.,HW_ACCOUNT_REGION).  The type should bein all capital letters with an underscore between each word.

 

3.7       Commentingin Siebel Tools

Alwayscomment new and modified development. This applies to both code and configuration changes.  Any configuration you do might be continued,or potentially debugged, by someone else, so ensure that commenting exists andis easy to follow and understand.

 

When commenting,be sure to include exactly what you are doing, while you are doing it.  Don’t be afraid to put in too muchinformation.  You may be aware of whatyou are doing when you implement the change, you will not remember what it wasseveral months later when you go back to comment your work. 

 

Keep yourcommenting professional.  Remember thatthis application will eventually be handed over to client.  Treat commenting just like a document youwould hand over to either of them.  

 

In Siebel configuration, there are two areas for which comments areessential: Tools and eScript.  As animplementation progresses, tracking development changes is imperative.  If a modification is applied to the repository and something breaks,the most efficient way to troubleshoot is to work backwards, examining recentconfiguration using comments.

 

Observethe following standards for tools and eScript commenting:

 

1.   Tools

 

Theproject standard for adding comments to the Comments field of all items intools is as follows: the comment should always include “HW”, the date developedin a DD/MM/YY format, the developer’s first initial and last name, and acomment explaining why the development was done.  Below is an example:

 

HW  KK 31/03/08 – New calculated field added todisplay total taxes

 

2.   eScript

 

a. The Header

 

Whenwriting a new script that will be referenced as a method or function, alwaysinclude a standard header.  This headerneeds to include three items: Name, Description, and a Log.  The name is the actual name of the script.  The description will explain what the scriptdoes.  The log will track all changesmade to the script, even if the original developer is making the change.  Below is an example:

 

functionMI_HW_Get_Volume_Discount()

/********************************************************************

  Name:         MI_HW_Get_Volume_Discount

  Description: This method will retrieve the Volume Discount Id

               from the product selected at the Service Instance

                     Level and then call anotherfunction to find the

               appropriate volume rate.

  Log:

  RC 31/03/08 - Removed Message Box when the Discount Amount Changes

  DC 01/04/08 - Message Box when the Discount Amount Changes

  *******************************************************************/

{  

 

b.Modifications

 

When making modifications to existing code, the comment should alwaysinclude a beginning and end indication so other developers will know the extentof the modification.  This should includethe developer’s first initial and last name, begin or end, the date developedin a DD/MM/YY format date and a comment explaining why the development wasdone.  Below is an example:

 

// ***** ParkY BEGIN –05/04/08 *****

 

// Added date formattingmodification

 

{Code modification here}

 

// ***** ParkY END –15/04/08 *****

 

c.Fixes

 

If thescript modification is a fix to a defect and the defect has an ID number (whichit should have been assigned a testing tool), be sure to include the defectnumber and the environment when commenting. This can assist both you and other developers in recollecting why thechange was made.  Below is an example:

 

// ***** EInra BEGIN –05/08/07 *****

 

// HWAPP #233 – Commentedout message box

 

{Code modification here}

 

// ***** EInra END – 23/08/07 *****


4     DatabaseExtensibility

 

When using DatabaseExtensibility against a database you can choose to either extend the basetable, or use a column on the extension table. If your requirement is to store additional data that should always bedisplayed when the base record is displayed, the recommended approach is toextend the base table to store this data. By doing this you avoid the extra join to the extension table.   The only exception is for party tables. Theparty business components are based on S_PARTY table. The core data is howeverstored in extension tables like S_ORG_EXT and S_CONTACT.  The extension columns should follow thestandard Siebel naming convention with X_NEW_COLUMN (e.g., X_CASE_FLG).  When creating a DATE or NUMBER column, thesize of the new column should never be altered unless discussed with theteam.  All boolean extension columnsshould be defined as type CHAR.

 

Extension columns should be created in groups and co-ordinated with theremainder of the team.  This is due tothe time involved in performing this process. Oracle Siebel Administrator will create the extension columns for theteam. The Administrator will maintain a log of all the extension columnscreated. The request for extension column needs to be sent to the individualwith the details. The administrator will create the necessary columns and applythe changes to the server database. Once the column is created and changes arepropagated to the server, the administrator will notify the rest of theteam. 

 

Oracle Siebel Administrator will use following guidelines while creatingextension columns:

 

·        When creating a new extension column, never copythe column from existing vanilla column.  Undesired properties from the existing column are often carried forwardfrom the copied from column.  It is bestto just use the “New Record” functionality. In creating a new column, you should only modify the Name, PhysicalType, Length, and Comments attributes. Do NOT modify any other attributes from their defaults.  All extension columns must be checked as “Nullable” as defaulted.

 

·        When creating a new extension column, acorresponding EIM column should also be created and mapped to the newcolumn. 

 

 

 

 


5     SiebelScripting Standards and Guidelines

The following guidelines detail standardpractices for Siebel eScript code.  Inall cases, a program logic specification should be written and reviewed beforeany Siebel eScript code is implemented.

 

5.1       GeneralGuidelines for accessing Siebel objects via Siebel scripts

 

·        Always activate fields that will be accessed in abusiness component BEFORE performing a query on the business component

 

·        When instantiating business components, remainaware of what context you are instantiating the component (i.e. what businessobject does the business component belong to)

 

·        Visibility rules still apply to business componentsin Siebel VB scripts or those accessed via OLE, but can be changed, by usingthe .SetViewMode method passing one of the following values:  SalesRepView(0), ManagerView(1),PersonalView(2), AllView(3), NoneSetView (4)

 

·        If using the ‘this’ function to instantiate aSiebel object, avoid declaring the variable that holds this object at themodular (private) level, rather declare it at the local level and pass it intoother subroutines as a parameter.

 

·        Always clear the memory of Business Objects andBusiness Components when they are no longer needed (i.e. bcAccount = null)

 

·        Code should follow standard indentation procedures

 

·        Within Siebel eScript scripts, always declarevariables at the beginning of the script.

 

·        Pay attention to the case. Siebel eScript is casesensitive.

 

·        Use parentheses () with all functions.

 

·        Use four-digit year in dates.

 

·        Make effective use of SWITCH construct.

 

·        For each of the Siebel script edit boxes, a limitof 16k characters exists. Each subroutine or function has its own edit box andtherefore can be up to 16k. The same limit applies to the (general)(declarations) section. If you are approaching this limit, try the followinghints to reduce the size of your script:

1.    Removeextraneous comments.

2.    Indentcode using tabs instead of spaces.

3.    Useshort variable and method names.

4.    Createsubroutines and functions.

 

 

 

5.2       Rulesfor Siebel eScript Variable and Object Names

  • Spaces are not allowed in any object name

 

  • Object names begin with a letter and should only include letters and digits

 

  • Object names use mixed upper and lower case to add readability to the name

 

  • The only non-abbreviated syntax element that can have multiple capital letters is the base name

 

  • Object names are usually singular rather than plural

 

  • An object’s base name should include the base names of any object it is built on, if practical

 

Data Type

Prefix

Example

String

s

sMyStringVariableName

Integer

i

iMyIntegerVariableName

Double

d

dMyDoubleVariableName

Long

l

lMyLongVariableName

Currency

c

cMyCurrencyVariableName

Date

dt

dtMyDateVariableName

BusObject

BO

BOMyBusinessObjectVariableName

BusComp

BC

BCMyBusinessComponentVariableName

Applet

AP

APMyAppletVariableName

Control

CT

CTMyControlVariableName

Time

Tm

TmMyTimeVariableName

DateTime

Ts

TsMyTimeStampVariableName

Business Service

BS

BSMyBusinessService

PropertySet

PS

PSInputs

 

5.3       Useof Try Catch Finally Blocks

Try/Catch/FinallyBlocks should be used in EVERY piece of custom code written in Siebel.

 

functionFUNCTIONNAME ()

{

   try

   {

       CODE GOES HERE

   }//end try

   

   catch(e)
{
  if (defined(e.errText))//this case includes the RaiseErrorTextMessage (purposeful alert).
     {
           TheApplication().RaiseErrorText("Error:  " + e.errText +
            "\n\n\nAnexception occurred in the " + arguments.callee +
            " ofthe " + this.Name() + " object.\n\n" + "Stack:  "+ e.toString());
        }//end else if
     else
        {
           TheApplication().RaiseErrorText("An exception occurred in the " +arguments.callee + " of the " + this.Name() + "object.\n\n" + "Error:  "
                   + e.toString());
  }//end else
}//end catch

finally

{

  NULL OUT OBJECTS IN CORRECT ORDER HERE(Business Components before Business Objects).

}

 return XXX (if there should be a return in the Function)

}//endfunction

 

5.4       ScriptingTechniques

a.   User Properties: In many cases, Business Component User Properties can be an excellentsubstitute for scripting.  Oftentimes auser property, in conjunction with a calculated field, can work just as well asscript and doesn’t carry as much overhead and maintenance.  Just consider that Siebel does not officiallysupport some of these features and there is no guarantee that they will functionafter an upgrade.

 

b.   Alternatives to script: Other ways to avoid scripting are field validation, read onlyproperties, and in some cases, implementing additional modules such asAssignment Manager and Workflow.

 

c.   Modularize:If eScript is essential, be sure to follow good coding practices and modularize.  These means as you write code, seriouslyconsider whether it could be leveraged by existing or future code.  If yes, it is worth the extra time up frontto develop it with enough flexibility so it can be invoked from any othermethod easily.   An example of this is afunction that performs generic processing (e.g. one that retrieves the currentstatus of an account).  However, there isone crucial step that must be executed – inform team member that the codeexists!  Do not assume they will find it(even though they should because they will be checking before they write newcode).

 

d.   Business Services: If the code is so generic that it could be leveraged application wide;consider developing it as a Business Service. An excellent example of this is a Business Service that contains all thescripted error messages for the application. This way, all error messages are contained in one service and developerssimply have to invoke a business service and pass it the message flags.  In the repository, look for the BusinessService called HW Error Handling Service. 

 

e.   Daily Script Back-ups.  As the development effortcontinues it is a good practice to perform daily backups of all BusinessComponent and Business Service scripts. If a problem suddenly occurs with a script, these backups can be veryuseful in helping to isolate the problem. A good way to do this is to navigate to the flat tab and perform exportsto a backup directory on the LAN.  Use alogical naming convention including the date. Again, be sure to inform colleagues that these backups exist.

 

f.    Always include error/exception handling to avoid ugly error messages.  This can typically be implemented using thetry, catch, throw methods.  CheckBookshelf for syntax examples and be sure to use this logic in ALL of yourscripting!

 

6     VisibilityGuidelines

Alwaysconsider visibility rules when adding new foreign keys, flatteningrelationships, or changing view or business component visibility. Although itis possible to modify the visibility rules defined by the UI, Siebel Remotevisibility rules will still determine which records are downloaded to a remoteuser’s machine.  For example, you canconfigure a view to give a user access to all opportunities in the database.  When connected to the server database, theuser would truly see all opportunities in the database.  However, when running disconnected againsttheir local database, the user would still only see the opportunities thatSiebel Remote determines should be downloaded to their local database.  That is, they will only see the opportunitieson which they are a team member, and opportunities associated with an account,contact or activity to which they have access.

 

Whencreating new a business component you should always ensure that your visibilityrequirements are satisfied by the Siebel Remote visibility rules applied to theparent business component, and base table for the business component

 

7     Internationalization

SiebelApplication is intended to be deployed globally at a later stage. Global Deploymentrequires the application needed to be configured in a different fashion.  Modification after initial deployment willrequire a system outage and “in place” data conversion. It will requireadditional effort, but overall costs are reduced if done prior todeployment.   Keeping that in mind,following activities should be undertaken before initial HW deployment.

·        Determine if Global Time Zone support isdesired and, if so, which fields are eligible.

·        Determine if any Siebel “inside the box”unilingual List of Values should be converted to multilingual List ofValues.  In addition, all new LOV Typesintroduced in HW should be configured as multilingual List of Values.

·        All new configurations should be done in a“language neutral” fashion.

7.1       ConfiguringFields for Universal Time Zone

Dateand time fields in Siebel vanilla fields are enabled for UTC. This includesfields that users manually populate by entering date and time data and fieldsthat the system populates by generating a date and time stamp. However, if youcreate custom date and time fields, it is important to enable them for UTC sothat data entered in these fields is consistent with data entered in other dateand time fields.

·        If you create new table extension column fordata and time field, set the Physical Type property of the new column to UTCDate Time.

·        If you create new business component field,set the Type property of the new business component Field to DTYPE_UTCDATETIME.

Afteryou compile your changes and if the UTC system preference is set to True, thefields will be enabled for UTC.

7.2       ConfiguringMultilingual List of Values

RCMApplication should be configured to display multilingual lists of values (MLOV)in static PickList. This allows the system to display values in the activelanguage of the user. It also allows the values selected by a user in onelanguage to be retrieved by users working in other languages.

TheLOV table contains a Display Value column and a Language Independent Codecolumn. Both monolingual and multilingual lists of values display values fromDisplay Value column to the user. However, after the user selects a value in aPickList, the actual value stored in the database is different for monolingualand multilingual lists of values.

·        A monolingual PickList stores the DisplayValue.

·        A multilingual PickList stores the LanguageIndependent Code.

Storingthe value from LIC column rather than the Display Value column allows the datato be stored in a form that users working in other languages are able toretrieve and allows the roll up of data for management reports, regardless ofthe language of the users who enter the data.

EnablingMLOV should be performed by Oracle Siebel Configuration Team Lead inco-ordination with Oracle Siebel Administrator. Team Lead will use following steps as guidelines to enable MLOV forcustom created columns and PickLists.  These activities should be performed directly on the server only forcolumns and PickLists that requires multilingual storage and display.  Siebel permits to work directly on the serveronly for configuration of columns for multilingual storage and display.  User should never work directly on the serverunder any other circumstances.

·        Translation Table property should be set toS_LST_OF_VAL for database columns that store MLOVs.

·        LOV Bounded property should be set to TRUEfor database columns that store MLOVs. All columns for a particular LOV typemust be bounded. If any of the columns for the LOV type is not bounded, thennone of the columns can be set to multilingual for that LOV type.

·        Translate Property should be set to TRUE forall LOVs that are multilingual in the List of Values Screen. (SiebelApplication à Site Map à Administration –Data à List ofValues)

·        PickList must be bounded (Bounded Property isset to True).

·        PickList must use the same LOV Type asspecified in the LOV Type property of the column.

NOTE:Configuration of MLOVs can impact performance, especially when the field onwhich the PickList is based is used as part of a search or sort. Performanceshould be considered and verified in conjunction with configuration of MLOVs.

7.3       ConfigurationConsiderations

RCMenvironments will be enabled for MLOVs; following guidelines should be followedto make the configuration “language neutral”.

 

LookUpName and LookUpValue functions: These functionscan only be used in calculated fields or search specification expressions. Theycannot be used with Siebel scripting.

 

Pre/Post default values for fields with LOV PickLists: Alwaysuse the LookupValue function with “Expr:” in front of it. The first argument isthe LOV Type and the second is the LIC (Language Independent Code). Thefunction returns the language-specific Display Value based upon the user’slanguage.

E.g. Expr:“LookupValue (““FS_PROD_ALLOC_RULES””, ““Default””)”

 

Dynamic drilldowns and toggle applets: These are usuallybased on a field that has a LOV value. For example, a dynamic drilldown mightnavigate the user to a Credit Card screen if the account type is equal toCredit Card or to a Savings screen if the account type is equal to Savings. Donot hard-code the drilldown or toggle conditions. Rather, use the LookupValuefunction (as described in the previous bullet).

 

Search specs for business components, links, applets, and PickLists: Alwaysuse the LookupValue function. 

E.g. [InvoiceCode] = LookupValue ('FS_INVOICE_CODE', 'Auction')

 

VB functionality: VB does not offer a function to retrievethe language-specific Display Value. However, the Display Value must never behard-coded; you should use the language-independent code instead. To write VBcode using the language-independent code only, you must create calculatedfields that hold the language-specific translation for a language-independentcode.

 

Language and ResourceLanguage parameters: Set theseparameters only in the configuration file, for example, Language =<lang>, ResourceLanguage = ENU. If you do not setthese parameters in the configuration file, application users willintermittently receive error 2009.

 

8     RepositoryBackup

Makebackups of the development repositories on a regular basis, preferable daily,to safeguard your configuration work. There are two approaches to backups. Oneapproach would be to backup the database backups using RDBMS utilities. Theother is to backup the repository using a Siebel supplied utility called‘repimexp.exe’ to export the contents of a specific repository to a flat file.The following are some details of the backup strategy.

·     The administrator will perform a daily backupof the customized repository.

·     Use ‘repimexp.exe’ to make backups of thedevelopment repositories on a regular basis to safeguard your configurationwork.  The utility will be performeddaily (at the end of the day). All developers will be required to ‘Check In’their projects prior to this backup. Developers who wish to continue working ontheir project(s) may ‘Check In’ whilst maintaining the lock.

·     All developers must store all other files,which require backups, onto a common staging folder. These include client .cfgand .srf files, batch scripts, Enterprise Integration Manager .ifb files, Webtemplate files and so forth. The administrator will use perform incrementaldaily backup of this folder.

转载于:https://www.cnblogs.com/tdskee/p/5632809.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Siebel 开发规范 的相关文章

  • PHP Yii:运行时数据库连接

    我想在运行时使用 Yii 连接到第二个数据库 数据库名称将来自用户登录后的数据库表 我在教程中看到我应该这样做 db2 Yii createComponent array class gt EMongoClient server gt mo
  • 从java程序运行jar文件

    我正在尝试从另一个 Java 程序执行 jar 文件 我正在使用以下代码 try Runtime runtime Runtime getRuntime runtime exec path upto jar catch Exception e
  • 查找关联程序以使用 Java 打开文件

    我希望使用计算机上安装的关联程序 在本例中使用 MS Word 或 Open Office Writer 从 Java 应用程序打开文件 比如说 word 文档 问题是我想等到这个子进程完成 这可以使用 Process 类中的 waitFo
  • 在没有 C 运行时的情况下使用 64 位整数 - 链接错误 __alldiv

    我正在尝试在不使用 C 运行时 msvcrt 或 libcmt 的情况下构建 Windows 控制台应用程序 也就是说 仅链接 kernel32 lib 并使用 WIN32 API 中的控制台函数而不是 printf 等 我的问题是 在链接
  • 如何在运行时修改 web.config appSettings?

    我对如何在运行时修改 web config appSettings 值感到困惑 例如 我有这个 appSettings 部分
  • 尝试注销 django 时出现运行时错误

    当我尝试从 django 项目注销时 出现以下错误 调用 Python 对象时超出最大递归深度 这是注销按钮的 URL url r logout users views logout name logout 这是视图 from django
  • 如何从 silverlight 应用程序检测操作系统?

    我有一个 Silverlight3 应用程序 旨在在 Windows 和 Mac OS 环境上运行 我想在运行时知道我的应用程序是在 Windows 还是 Mac 上运行 这样我就可以根据用户在他们选择的操作系统中习惯的方式进行一些调整 例
  • 需要特殊数组(线性场)的算法

    我有一个数组 线性场 与预先排序的数字 1 2 3 4 5 6 但这些数组向右移动 k次 now its 5 6 1 2 3 4 k 2 但我不知道k 只有数组A 现在我需要一个算法来找到 A 中的最大值 运行时间 O logn 我认为它是
  • C、运行时测试 PATH 中是否存在可执行文件

    我目前正在用 C 语言编写一个应用程序 目标是 BSD 和 Linux 系统 希望能够普遍移植 该程序具有运行时依赖项 在本例中为 mplayer 就目前情况而言 我正在使用execlp 启动 mplayer 我正在检查 execlp 调用
  • 为什么 UIView 的框架没有在 ViewDidLayoutSubviews 中更新?

    我正在尝试更新一个框架UIView其中包含按钮和标签 我正在尝试更新它viewDidLayoutSubviews 我也尝试过viewDidLoad viewWillAppear viewDidAppear 我想更改视图的 y 位置 orig
  • 在 Java Runtime.getRuntime().exec(...) 中使用引号和双引号

    我正在尝试在 Mac OSX 中从 Java 启动 Lisp 映像 使用控制台中的图像 我输入以下内容 lisp image eval package method some argument 一切都运行良好 在Java中 我在使用传递引号
  • 从 IntelliJ Ultimate 外部运行时,Tomcat 的“服务器日志”在哪里?

    当运行我的Vaadin https en wikipedia org wiki Vaadin app on Tomcat https en wikipedia org wiki Apache Tomcat8 5 外部来自IntelliJ h
  • 未确定的泛型类型在 ghci 的运行时中如何表示

    我很清楚通用函数和通用数据类型 在泛型类型中 data SB forall x show x gt SB x instance Show SB where show SB x show x 所以对于任何给定类型x 如果它有一个签名Show
  • 流畅的界面是否会显着影响 .NET 应用程序的运行时性能?

    我目前正忙于为现有技术实现一个流畅的接口 这将允许类似于以下代码片段的代码 using var directory Open Directory path to some directory using var file Open File
  • 如何列出运行时函数的所有调用?

    有什么办法可以list 在VS中显示 写入文件 所有来电者 对象 函数 一个函数的当程序运行时 可能使用调试器 我需要record 所有通话 包括来电者 一个函数的从计划启动到终止 简单扫描源代码或二进制文件不做这份工作因为该程序可以作为服
  • GOMAXPROCS 默认值是多少?

    不设置同名环境变量时是否保证GOMAXPROCS设置为1 此代码显示的值 package main import runtime fmt func getGOMAXPROCS int return runtime GOMAXPROCS 0
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 从 datagridview C# 中检索数字值

    我正在尝试从 datagridview 检索数值 表中的值和变量 weeklyTotal 的数据类型都是整数 我也试图将其转换为整数 我浏览了整个网站是否有类似的问题 但没有一个解决方案有帮助 我收到的错误消息是 当转换为数字时 该值必须小
  • 在 Java 和 C 中在运行时调用名为“string”的方法

    我们如何调用名称为的方法string在运行时 谁能告诉我如何在 Java 和 C 中做到这一点 在java中可以通过反射api来完成 看一下Class getMethod String methodName Class parameterT
  • 全部配对图表上的所有路径

    这可能是一个没有最佳解决方案的问题 假设我有一个有向图 不知道它是否有循环 循环检测将是这个问题的方面之一 给定一组顶点 可能是数百万个顶点 我需要计算给定图的所有唯一对之间的所有不同路径 没有重复顶点的路径 我该如何应对这种情况 让我们看

随机推荐

  • C# dll代码混淆加密

    目录 一 需求 二 用法 1 新建C 项目 2 开始加密 3 常见的错误 4 添加加密规则 5 导出加密dll 6 调用加密dll 结束 一 需求 C 项目生成 dll 在反编译工具下 好比皇帝的新装 dll 内部的代码看的一清二楚 在这里
  • 【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)

    用 Python实现 文字PK 小游戏 前言 明确项目目标 分析过程 拆解项目 逐步执行 代码实现 版本1 0 自定属性 人工PK 版本2 0 随机属性 自动PK 版本3 0 打印战果 三局两胜 前言 我想先和你谈谈一个项目一般是怎么完成的
  • Bootstarp入门教程(4) 排版(1)

    1 标题 HTML中的所有标题标签 从 h1 到 h6 均可用 div class container div class row h1 h1 Bootstrap heading h1 h2 h2 Bootstrap heading h2
  • pkg-config 编译安装

    由于大部分的开源工程都需要用到pkg config 因此今天在这讲解一下pkg config for mac 安装过程 1 检测环境是否已安装pkg config 再命令行中输入 pkg config 若未安装 则提示命令未找到 2 安装p
  • CentOS 7安装DastDfs

    1 安装gcc 编译时需要 FastDFS是C语言开发 安装FastDFS需要先将官网下载的源码进行编译 编译依赖gcc环境 如果没有gcc环境 需要安装gcc yum install y gcc gcc c 2 安装libevent 运行
  • 文件包含漏洞学习

    一 文件包含简介 开发人员都希望代码更加灵活 所以通常会将被包含的文件设置为变量 用来进行动态调用 正是这种灵活性 从而导致客户端可以调用一个恶意文件 造成文件包含漏洞 1 文件包含函数 PHP中文件包含函数有以下四种 require re
  • H5 Canvas与SVG的比较

    转载 https www w3school com cn html5 html 5 canvas vs svg asp 两者都能够在在浏览器中绘图 但两者之间还是不一样的 Canvas 通过Javascript来绘制2D图形 是逐像素进行渲
  • STM32HAL库和STC51同时操作多个IO口

    STM32同时将PC13 PC14 PC15拉低 拉高 根据 define GPIO PIN 13 uint16 t 0x2000U Pin 13 selected define GPIO PIN 14 uint16 t 0x4000U P
  • R语言注意事项列表

    R语言注意事项列表 R语言是一种功能强大且广泛使用的编程语言 特别适用于数据分析和统计建模 在使用R语言进行编程和数据处理时 以下是一些需要注意的事项 以帮助您更有效地使用该语言 使用合适的注释 在编写R代码时 使用注释来解释代码的功能和目
  • 分别用 VTK 体绘制和面绘制来实现医学图像三维重建

    关注公众号 小张Python 为你准备了 50 本Python 精品电子书籍 与 50G 优质视频学习资料 后台回复关键字 1024 即可获取 如果对博文内容有什么疑问 后台添加作者 个人微信 可与作者直接进行交流 序言 VTK介绍 VTK
  • win10自带输入法微软拼音切换简体繁体

    ctrl shift f
  • 用Python自动生成Excel报表

    在日常工作中 可能会有一些重复无聊的任务 比如说 从 Excel 或数据库中收集一些数据 设置相应的数据格式并做成报表 类似这种重复无聊的任务 我们完全可以交给 Python 去自动完成 只要第一次把 Python 代码写好 以后就可以一键
  • java 一点小小的体会

    云应用的大量应用 使得网络资源得到高效利用 云开放平台的大量使用 使得我们的个人应用及数据存储有一个新的发展 你的个人数据可以存储在云上 这样你可以节省了你的资源 当我们使用时可以随时存取 不用一次次加大你的硬盘 我们可以把自己的应用部署在
  • lay-verify 无效

    lay verify 无效 使用lay verify有两个需要注意的地方 form标签需要添加 class layui form 提交按钮需要添加 lay submit 如
  • 【基于DL的图像语义分割】TensorFlow语义分割套件开源了ECCV18旷视科技BiSeNet实时分割算法

    Github上的开源工程Semantic Segmentation Suite 语义分割套件 由来自美国建筑智能服务公司的机器学习工程师George Seif创建 使用Tensorflow实现了大量最新的语义分割算法 最近 该开源库新加入了
  • 第二章练习

    下载了dosbox后 使用debug链接在 https blog csdn net weixin 44307065 article details 104985457 跟着书慢慢看 并且练习 r查询寄存器 r ip 查询修改指示器数值 d
  • 为什么说数据、算法、平台或硬件是AI发展的三个要素

    近年来 人工智能 AI 已成为科技领域的热点话题 而数据 算法 平台和硬件被认为是AI发展的三个关键要素 本文将探讨为什么这些要素对于AI的发展至关重要 并分析它们之间的相互关系 一 数据 AI的基石 数据是AI发展的基石 提供了用于训练和
  • UE4 指定范围内 随机位置 批量生成AI角色蓝图

    一 蓝图设置 1 添加生成范围 2 调整范围大小 3 参数及蓝图设置 数量默认为0
  • 学习嵌入式-4412开发板入门和提高_围观资料

    1 入手门槛还是有一定难度的 需要有C语言基础的2 目前4412的资料已经积累了100G以上的资料 自家提供 不是拼凑起来的3 自家开发了一套教程 资料已经分类整理 我们可以更有效率的去学习4 视频教程讲义可以像单片机一样简单 录制会根据当
  • Siebel 开发规范

    Siebel Configuration and Development Guideline 1 Objectives 3 2 Application Development and Customization Guidelines 4 2