You are here

Siebel EAI

How can I hide the superfluous message in the “VBC error pop-up window“

When implementing a Virtual Business Component (VBC) based on XML Gateway and a Transport business service, an error handling routine can be defined in external application as follows:

<siebel-xmlext-status>
<status-code>4</status-code>
<error-field>field-name</error-field>
<error-text>Name must not be empty</error-text>
</siebel-xmlext-status>

When the XML stream is returned back to Siebel, the error message box is raised with following message format by default behavior:

"The external souce for the BusComp returned an error: 'Status: 4'; Error Filed: field-name; Error Text: Name must not be empty."

Customer wanted to display only the <error-test> element value on the message box instead of all <status-code>, <error-field>, and <error-text> element values.

Resolution:

The error message format on the error message box is the default behavior of the XML Gateway business service. Currently, it is not intended functionality to modify the message format as the requirement in Siebel application 7.5.2.100 [15252] FINS.

For more information about the error handling routine, please refer “Technical Note 263: Using the XML Gateway to support Virtual Business Components (VBC): an explanation of the XML Format” in SupportWeb.

Integrating Barcode Reader with Siebel Applications

This document has been written to demonstrate how to enable barcode toolbar in Siebel Call center, How to Map fields such that the barcode input always goes into a particular field and automatically perform tasks like insert.

About Barcode Scanner and Barcode Scanner

A Barcode reader is one which scans a Printed Barcode, Decode it and Convert it to Data. Like a flatbed scanner, it consists of a light source, a lens and a photo conductor translating optical impulses into electrical ones. It contains a Decoder circuitry that can analyze the barcode image, convert into Data and places it in buffer.

Barcode Reader pastes the data where ever there is a cursor to accept input or just keep the input in buffer.

Using Barcode Reader in Siebel Call Center Application

             Barcode Reader can be used in Siebel in two ways

  • By Placing the cursor in the desired field and firing the barcode reader
  • By enabling the Barcode toolbar and mapping fields to accept the barcode input

By placing the cursor in the desired field and firing the barcode reader

First method requires no extra configuration. Any plug-and-play barcode reader can paste the data of the barcode if it finds a cursor. Means that we can place the cursor in the required field, read the barcode using the barcode reader and automatically the data gets into the field.

            Drawback of this method is that it is not automatic and every time we have to place the cursor in the right field. For example If Siebel has to automatically retrieve a record based on an assert number on a product when we read its barcode, then we cannot use this method.

Second method is by using Siebel barcode toolbar and mappings.

Using Barcode Toolbar

 

 

Barcode toolbar has three modes new, Update and Find.

 

  • When used in New Mode, Siebel Creates a new record, inserts the data extracted from the barcode in the Field specified in the mappings(Mapping is covered in the later part of the document)
  • When used in Find mode, Siebel fetches a record with the field(Field specified in the mapping) value equal to barcode value and displays it.
  • When used in Update mode, Siebel fetches a record with the field(Field specified in the mapping) value equal to barcode value and keeps it ready for updating

Enabling Barcode Toolbar

Barcode toolbar is by default Present in Siebel Field Service. To enable it in Siebel call center, we need to edit uagent.cfg with a property value.

Barcode Toolbar accepts inputs only when it is Active.

Steps to Enable Barcode Toolbar in Siebel call center

Step 1: Find uagent.cfg

Step 2: “ShowBarcodeToolbar” parameter must be added and set to “True”

This parameter will not be available in uagent.cfg. we have to add it in between n “MessageBarUpdateInterval” and DataSource parameters.(shown in Fig. below )           

Step 3: Launch the application using this CFG file.

 

Following this process will display a Barcode Toolbar in Siebel Call Center.

For a server configuration, a barcode toolbar parameter must exist in the SFSObjMgr. The name

of this parameter is Barcode Toolbar Enable Flag. A value of TRUE enables the barcode toolbar,

While a value of FALSE disables it.

Barcode Mappings

For a Barcode toolbar to accept data from a barcode reader, we have to map barcode data

 Steps to map barcode data to views, tabs, and fields

Step 1: Navigate to the Administration - Service screen > Barcode Mappings view.

Step 2: Create a new record for every field that is to receive barcode data.

Step 3: Complete the fields.

 Based on these mappings, each View-Applet pair has some fields to accept barcode data that appear in a dropdown list

 

Based on Mappings done in FS Barcode Mappings, the Data automatically gets pasted into a particular field and performs particular task like insert, update, find etc 

Configuring Barcode Reader and Simulating Barcode Toolbar without a barcode reader

 For Siebel to accept the data from the barcode reader,

  • Barcode Toolbar should be active
  • The data should be prefixed with Ctrl+/ and suffixed with Ctrl+\.

These Signals act as Start of Transmission and End of Transmission messages to Siebel. So to use a barcode reader, it should be programmed in such a way that the data is suffixed and prefixed with these codes. (Almost all barcode readers are configurable. contact your vendor or customer care for details)

 We can also test barcode toolbar functionality without a barcode reader. To do this,

  • just go to a view and the applet into which the data should be placed
  • Select appropriate field from “Use” dropdown of Siebel barcode toolbar
  • Hit Ctrl+/
  • Type data
  • Hit Ctrl+\

 These steps allow you to test the functionality of the barcode toolbar and validate mapping without actually using a Barcode Reader.

Refresh an applet instead of the Business component

User wants to update the data being displayed on UI after performing some validation and updates via a script on the underlying BC.

Solution:

A vanilla Business Service “FINS Teller UI Navigation” can be used to refresh an Applet after updating the underlying data, without breaking the current query.

Approach:

1.  One of the most commonly used approach is to invoke the "RefreshRecord" method on the Business Component. However, this does not promise to work on all Business Components.

2.  Another alternative is to call the BS method "RefreshCurrentApplet" on the BS "FINS Teller UI Navigation".

Syntax:

TheApplication().GetService("FINS Teller UI Navigation").InvokeMethod ("RefreshCurrentApplet", TheApplication(). NewPropertySet(), TheApplication().NewPropertySet());

Example

BusComp_WriteRecord()

{

Code Goes Here

//TheApplication().InvokeMethod(“RefreshBusComp”);    --Commented

TheApplication().GetService("FINS Teller UI Navigation").InvokeMethod ("RefreshCurrentApplet", TheApplication(). NewPropertySet(), TheApplication().NewPropertySet());

}

Note:You just need to place the above syntax instead of TheApplication().InvokeMethod(“RefreshBusComp”). This method is supported from Siebel 7.5 onwards

Perform Operations on Non-Primary BC through a Workflow

User wants to perform operations on Service Request BC while the workflow is based on Quotes.   Solution:
An Out of the Box Business Service “Inbound E-mail Database Operations “ can be used for the same. Advantages- 1) Siebel Operations need the workflows to be BO based where as no such requirements are there for Inbound E-mail Database Operations 2) You can query as many BC (from different BO) you want 3) The BO instance is not loaded in the memory throughout the workflow   Valid Operations:   InsertRecord  

Input ArgumentsOutput Arguments
BusObj – Business Object Name BusComp – Business Component Name Field: FieldName – Fields Name which needs to be set during Insert and in pass field value as literal or Process PropertyError Code – Error code during execution of method Error Message – Error Message during execution of method Object Id – Row Id of record created  

    FindRecord

Input ArgumentsOutput Arguments
BusObj – Business Object Name BusComp – Business Component Name ValueFields – List of comma-separated fields to get values from.  Each field is passed back in one output argument, with name set to field name, and value set to field value. For Example – Id,Account Id,Contact Id etc   QueryFields – List of comma-separated fields to query on.  Query values are passed in additional arguments, with one argument per field. For Example – Id,Account Id,Contact Id etcError Code – Error code during execution of method Error Message – Error Message during execution of method Object Id – Row Id of record created

    UpdateRecord

Input ArgumentsOutput Arguments
BusObj – Business Object Name BusComp – Business Component Name Field: FieldName – Fields Name which needs to be updated and in pass field value as literal or Process Property. Id – Row Id of record which needs to be UpdatedError Code – Error code during execution of method Error Message – Error Message during execution of method

  DeleteRecord

Input ArgumentsOutput Arguments
BusObj – Business Object Name BusComp – Business Component Name Id – Row Id of record which needs to be UpdatedError Code – Error code during execution of method   Error Message – Error Message during execution of method
Deploy or Activate of Several Workflow Processes on Siebel
Siebel 7.8 introduces a new business service named "Workflow Admin Service" which offers, among others, this functionality to deploy or activate several workflow processes at a time. This is a new business service that allows you to perform batch import/export, deployment, and activation of multiple workflow processes initiated by way of a search specification. The methods for this business service are: Activate, Delete Deploy, Deploy, Export, and Import.
 
In version 7.7, this functionality is not available.
Note: When you migrate workflow processes using ADM, the workflows are activated automatically. If you use REPIMPEXP or the Siebel Workflow import/export option, you must activate the workflows manually.If you choose not to connect Siebel Tools to your production repository, you must use REPIMPEXP for migration of all your workflow process definitions and later use this Business service for deployment.
Example. Set of W/Fs to be deployed and activated can be chosen using Search specification which is one of the inputs (Input Property: "FlowSearchSpec") to the BS.

The sample code to deploy and active multiple workflows.
 
Multiple Deploy
 
if ( MethodName == "DeployTest")
                {
                       var svc = TheApplication().GetService("Workflow Admin Service");
                        var inputs;
                        var outputs;
                        inputs = TheApplication().NewPropertySet();
                        outputs = TheApplication().NewPropertySet();
                        inputs.SetProperty("FlowSearchSpec","Process Name like 'HIG*'");
                        svc.InvokeMethod("Deploy", inputs, outputs);
                        var out = outputs.GetProperty("NumFlowDeployed");
                        return (CancelOperation);
            }
 
Multiple Activate
    
         if ( MethodName == "ActiveTest")
            {
                        var svc = TheApplication().GetService("Workflow Admin Service");
                        var inputs;
                        var outputs;
                        inputs = TheApplication().NewPropertySet();
                        outputs = TheApplication().NewPropertySet();
                        inputs.SetProperty("FlowSearchSpec","Process Name like 'HIG*'");
                        svc.InvokeMethod("Activate", inputs, outputs);
                        var out = outputs.GetProperty("NumFlowDeployed");
                        return (CancelOperation);
            }
Connect AND GeoAccess to Siebel
This document describes the steps to be taken in order to connect to AND GeoAccess to Siebel.
 
Virtual Business Component
 
Create a Virtual Business Component (VBC) in Siebel and base it on a custom business service.
  • A VBC is based upon a Business Component (Class: CSSBCVExtern)  and a Business Service (Class: CSSService).
  • For using a VBC it is mandatory to code (either in VB-script or Java script) the methods you want to use.
  • Some of the methods are executed automatically, so these need to be coded as well.
 
Init Method
 
The init call returns the list of columns it supports.
 
Function Init (Outputs)
{
//  identify the fields used in the VBC
Outputs.SetProperty ("Country","");
Outputs.SetProperty ("Street","");
Outputs.SetProperty ("Premise","");
Outputs.SetProperty ("Name","");
Outputs.SetProperty ("City","");
Outputs.SetProperty ("PostCode","");
Outputs.SetProperty ("SubscriptionKey","");
Outputs.SetProperty ("UseCleanseSearchMethod","");
 
Return (CancelOperation);
}
 
Query Method
Code the query call to execute a workflow which will perform all the ‘work’ as follows. To extract the fields and pass these to the workflow you will have to write some code.

 

 
function Query(Inputs)
{
                var workflowSvc = TheApplication().GetService("WorkflowProces Manager");
                var workflowInputs = TheApplication().NewPropertySet();
                var tmpOutput = TheApplication().NewPropertySet();
                var ProcessName = "Workflow AND GeoAccess"
               
                var Country = "";
                var Street = "";
                var Premise = "";
                var Name = "";           
                var City = "";
                var PostCode = "";
                var SubscriptionKey = "";
                var UseCleansSearchMethod = "";
               
                try
                {
               
                                Country = Inputs.GetChild(0).GetProperty("Country");
                                Street = Inputs.GetChild(0).GetProperty("Street");
                                Premise = Inputs.GetChild(0).GetProperty("Premise");
                                Name = Inputs.GetChild(0).GetProperty("Name");            
                                City = Inputs.GetChild(0).GetProperty("City");
                                PostCode = Inputs.GetChild(0).GetProperty("PostCode");
                                SubscriptionKey = Inputs.GetChild(0).GetProperty("SubscriptionKey");
                                UseCleanseSearchMethod = Inputs.GetChild(0).GetProperty("UseCleanseeSearchMethod")
               
               
                                workflowInputs.SetProperty ("ProcessName", processName);
                                workflowInputs.SetProperty ("Country",Country);
                                workflowInputs.SetProperty ("Street",Street);
                                workflowInputs.SetProperty ("Premise",Premise);
                                workflowInputs.SetProperty ("Name",Name);
                                workflowInputs.SetProperty ("City",City);
                                workflowInputs.SetProperty ("PostCode",PostCode);
                                workflowInputs.SetProperty ("SubscriptionKey",SubscriptionKey);
                                workflowInputs.SetProperty ("UseCleanseSearchMethod",UseCleanseSearchMethod);
                               
                                var outPS = TheApplication().NewPropertySet();
                                workflowSvc.InvokeMethod("RunProcess",WorkflowInputs,outPS);
               
                                var i=0;
                               
                                var PSName;
 
                                while (i < outPS.GetChildCount ())
                                {
                                                tmpOuput = outPS.GetChild(i).Copy();
                                                PSName = tmpOutput.GetType();
                                                if (PSName == “PropertySet”) { break; }
                                                i++
                                }
                                return (tmpOutput);
                } catch (e) {return (CancelOperation);}
               
}
 
PreInvokeMethod Method

 

Code the PreInvokeMethod to propagate the method calls for Init and Query. This is also the place to capture the data entered by the user for executing the Query Method.
                                 
function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
                if (MethodName == "Init")
                {
                                return(Init(Outputs));
                }
                else if (MethodName == "Query")
                {
                                try
                                {
                                                var tmpOutput = TheApplication().NewPropertySet();
                                                var j = 0 ;
                               
                                                tmpOutput = Query (Inputs)
                               
                                                while (j < tmpOutput.GetChildCount())
                                                {
                                                                Outputs.AddChild(tmpOutput.GetChild(j).Copy());
                                                                j = j + 1;
                                                }
                                                return (CancelOperation);
 
                                }
                                catch (e)
                                {
                                                TheApplication().RaiseErrorText("Error: " + e);
                                                return (CancelOperation);
                                }
                }
                else
                                return (ContinueOperation);
}
 
Create Workflow
 
AND GeoAccess to Siebel Integration Work flow
 
Start
The start step
Create SOAP XML
This steps needs to create some XML. It can use any mechanism you like to use (e.g. Siebel EAI Adapter, …)
Transform to UTF-8
You need to transform the XML into the codepage the external system expects
Call AND GeoAccess Webservice
Dump the XML to the external system using the transport it supports.
XSLT Transform
You transform the external XML into the format required by Siebel using XSLT.
To Property Set.
Using the XML Converter (XML to Property Set) you convert the XML into the ‘PropertySet’ property.
End.
The End.
 
 

Appendix

Find the attached sif file and workflow xml.
Siebel Integration Objects and Data Mapping step by step guide

Steps to create a Siebel Integration Object:

1.Login Siebel epharma Client with User Id and password SADMIN to sample database.

2. Before Creating a integration object study the Siebel data to integrate

Navigate to  Contacts-->Contact List >My Contact

Do Help->About View

Note the Business Object,Business Component ,the applets.

3.Click OK

4. Exit the Siebel application

5. Log in to Siebel tools as SADMIN/SADMIN to the sample database.

6. Use Applet Designer to determine fields behind applet controls

In tool select Contact List Appletrigt click and choose Edit Web Layout

In Editor select LastName textbox

In properties window the name appears for the field

Do the above steps for other fields also.

Select Window -> Close to exit WebLayout Editor

7.Create and Lock a new project for integration object

Select  Project

Add new record and set the following properties:

Name

Directutor ABC

Locked

True

 

8.Create a new integration object based on Contact Business Object.

  • Select File>New Object

  • In the New Objects Wizard dialog box select EAI Tab and then double click Integration Object.The Integration Object  builder appears.

  • From the Project select Directutor ABC

  • For the Source System Business Service select EAI Siebel Wizard and Click Next

  • For the source object select Contact

  • For Name of Integration Object enter Directutor Contact

  • Click Nextto have the system begin creating Integration Object

  • Click +to expand Contact object

  • Notice by Default components are selected

  • According to requirement of integration select the component we need

  • At the top of the List click the Check  mark next to Contact root object to deselect all the components

  • Select Contact

  • Click Next when the process ends click Finish.The Result is Integration Object Directutor Contact.

  • Select Integration Object> Directutor Contact>Integration Component>Contact>Integration Component Fields

  • Set inactive property to true for all the fields except the ones which you like to integrate like Last Name,First Name,Id

Steps to create a Data Map:

1.Login Siebel epharma Client with User Id and password SADMIN to sample database.

2. From Site Map  Navigate to Integration Administration -------- Data Map Editor.

3. In Integration Object Map  List Create and Save the following Record.

NAME

Test Data Map

SOURCE OBJECT NAME

Directutor Contact

TARGET OBJECT NAME

Directutor  Contact

4. InIntegration Component Map List  Create and Save the following Record

NAME

Contact Map

SOURCE COMPONENT NAME

Contact

TARGET  COMPONENT NAME

Contact

 

5. Create Integration  field map records with following values:

SOURCE  EXPRESSION

TARGET  FIELD NAME

[Last Name]

Last Name

[First Name]

First Name

[ID Type]

Id

 

6. Select Integration  Map Object List and Press CRTL+S to save the record

Siebel EAI Web Services Lab Guide

Steps to Create Siebel Inbound Web Service:

 

  1. Login to Siebel epharma client
                           User Name: SADMIN: Password: SADMIN
  1. Go to Site Map
  2. Click on Web Services Administration Screen Tab
  3. Now click on Inbound Web Services View Tab
  4. Create a New Record in Inbound Web Services List Applet
  5. In Namespace write “http://siebel.com/asi/
  6. In Name write“Directutor Contact”
  7. Make status as“Active”
  8. Comment is not a mandatory field. You can write any meaningful comment for your reference.
  9. Create a New record in Service Ports List Applet.
  10. In Name write“Directutor Contact”
  11. In Type click on the Glyph.
  12. From Pick Applet select “Siebel Contact”
  13. Then Type will come as“Business Service” in Service Ports List Applet.
  14. Now Select “HTTP” as Transport medium.
  15. Select Binding as “SOAP_DOC_LITERAL”
  16. In Address write the following string
                   http://dtsiebsrv1/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=SADMIN&Password=SADMIN
  1. Now in the Operations List Applet Add methods.
  2. From the Pick Applet Select methods like “Insert”, “Update”, “Delete” etc.
  3. Make the Authentication Type as “None”
  4. Now click the“Clear Cache” tab 2-3 times.
  5. Finally click on the“Generate WSDL” button to generate the WSDL file & save the file with .wsdl extension.
 
Steps to Create Siebel Outbound Web Service:
Consumption of external Web Services is accomplished using the WSDL Import Wizard. The following procedure describes how to use this wizard to read an external WSDL document.
Data and methods for an outbound Web Service can be defined by either:
  • A WDSL file for the external Web Service
  • An outbound ASI
 
To create an outbound Web Service based on a WSDL file
 
NOTE : You can take the WSDL file which you have generated during Inbound Web Service Creation.
 
1Start Siebel Toolsto create the proxy business service.
2Create a new projectand lock the project, or lock an existing project.
3Choose File > New Object.. to display the New Object Wizards.
4Select the EAI tab and double-click Web Service.
 
The WSDL Import Wizard appears:
a.Selectthe Project where you want the objects to be held after they are created from the WSDL document.
b.Specifythe WSDL document that contains the Web Service or Web Services definition that you want to import.
c.Specifythe File where you want to store the run-time data extracted from the WSDL document or accept the default.
d.Specifythe log file where you want errors, warnings, and other information related to the import process to be logged or accept the default.
e.Click Nextto view and verify a summary of your import information.
f.Click Finishto complete the process of importing the business service into the Siebel repository.
 
This procedure generates three objects in the Siebel repository:
  • An outbound proxy business service of CSSWSOutboundDisptacher class. This service acts as a client-side implementation of the Web Service and includes the operations and the arguments to the operations defined in the WSDL document.
  • Integration Objects, representing input and output parameters of the service methods, are created if any of the operations require a complex argument (XML Schema) to be passed. If the service does not use complex arguments, then no integration object definitions will be created.
  • A Web Service administration document (an XML file) containing the run-time Web Service administration data that should be imported into the Siebel Web Client, using the Outbound Web Services view of the Administration - Web Services screen.
 
Outbound Web Services Administration
The WSDL Import Wizard exports the data to a file that you must import to the run-time database(the Web Services address) using the Outbound Web Services screen.
  1. Login to Siebel epharma client
                           User Name: SADMIN: Password: SADMIN
  1. Go to Site Map
  2. Click on Web Services Administration Screen Tab
  3. Now click on Outbound Web Services View Tab
  4. Click the “Import” button & browse the .xml file which has created during importing the External Application Web Service Description Language in Siebel.
  5. Once the file is browsed properly the Outbound Web Service Proxy definations(Service Ports, Operations) will be created in Siebel Client accordingly.

 

Siebel EAI Interview Questions
1)      COM Data server  provides access to Siebel database through
 
a)      ActiveX controls
b)     .DLL and .TLB files
c)      Proxy classes
d)     Application instance
 
2)      If the data volumes are very large and the frequency of changes to the data is very high then you are most likely to use data replication integration strategy.
 
a)      True
b)     False
 
3)      EAI Siebel Wizard is used to create which of the following objects?
 
a)      Internal Integration Object
b)      External Integration Object
c)      Interface Integration Object
d)     Siebel Business Object
 
4)      Synchronize Method is a part of which Business service?
 
a)      EAI XML Converter
b)     EAI Siebel Adapter
c)      XML Hierarchy Converter
d)     EAI File Transport
 
5)      Which Business service converts data from one encoding to another?
 
a)      EAI MIME Hierarchy Converter
b)      XML Hierarchy converter
c)      Transcode
d)     IntObjHierToXMLDoc
 
6)      EAI XML Write to File combines the functionality of which two business services? Choose two.
 
a)      XML Hierarchy converter
b)     EAI XML Converter
c)      EAI XML Read from File
d)     EAI File Transport
 
7)      Integration Workflow if invoked through declarative call, cannot execute asynchronously.
a)      True
b)     False
 
8)      Enterprise wide groupings of parameters that specify how the target application responds to inbound messages are called ______________.
 
a)      Enterprise server parameters
b)      Enterprise System Names
c)      Named Subsystems
d)     Named Enterprise systems
 
9)      All incoming EAI requests are handled by _________________
 
a)      Siebel Server
b)      EAI.cfg
c)      EAI object manager
d)     Siebel object manager
 
10)  Incase where Integration component field values differ between source and target application, you would use ________________________
 
a)      EAI value maps
b)      EAI data transformation engine
c)      Data mapper tool
d)     Auto mapper engine
 
11)  A business service that routes the messages based on their content is called _____________
 
a)      EAI Dispatch service
b)      EAI routing service
c)      EAI HTTP transport
d)     EAI XML converter
 
12)  The receiver component in an EAI Queue-based transport uses which two named subsystems? Choose two.
 
a)      Receiver service subsystem
b)     Receiver Data Handling subsystem
c)      Receiver Connection Subsystem
d)     Receiver Queue subsystem
 
13)  Which of the following are the benefits of ASI? Choose two.
 
a)      Are transport independent
b)      Uses data synchronization services
c)      Provides predefined integration interfaces
d)     Provide implicit mapping
 
14)  While creating web services, it is mandatory to specify the URL to be used by the client to access the web service.
 
a)      True
b)      False
 
15)  Reuse of business logic in an external application without reimplementing it is possible in case of data replication strategy.
 
a)      True
b)     False
 
16)  External business component derives data from ___________________
 
a)      EIM tables
b)      Interface tables
c)      External tables
d)     Staging tables
 
17)  Virtual business component cannot refer ____________________
 
a)      Spreadsheets
b)      Flat files
c)      External relational table
d)     Table object definition in Siebel repository
 
18)  Universal Application Network uses _______________ as an intermediary between source and target transformations.
 
a)      Common objects
b)      Web services
c)      Integration server objects
d)     Business Integration solutions
 
19)  Application Objects are used during _______________. Choose two.
 
a)      Integration flow
b)     Source Adapter flow
c)      Source Transformation flow
d)     Source Integration flow
 
20)  In Hub and spoke architecture, a spoke corresponds to _______________
 
a)      Integration flow + Adapter flow
b)      Source Adapter flow +  Target Adapter flow
c)      Adapter flow + Transformation flow
d)     Target transformation flow + Source Transformation flow 
Loading Attachments in to Siebel through EIM (Enterprise Integration Manager)

This article is written to demonstrate how attachments can be migrated through EIM from source into target Siebel system. This document gives you an overview of loading attachments in Siebel, various entities in which attachments can be tied, processes involved in loading through eim, etc, Also, at the end of this document there is a case study available in loading attachments against Accounts through EIM. The pre-requisite for reading this document is to have basic knowledge in using Siebel, Enterprise Integration Manager (EIM) and IM knowledge and familiarity in Siebel data model.  

Attachment Entities in Siebel

  • Account
  • Activities
  • Agreements
  • Assets
  • Contacts
  • Employee
  • Fund Request
  • Households
  • Invoices
  • Messages
  • Offers
  • Opportunities
  • Product
  • Quotes
  • Sales Orders
  • Service Orders
  • Service Request        
  • Territory Management

Attachments in Siebel - An Overview

The major benefit of the Attachments view is that it allows others who may be working with the same record to access the attachment. This provides team members with the latest information .If you edit files attached to Siebel records, your changes are saved back to the Siebel file system when you step off the attachment record in the Siebel application.

 

            When you try to open an attached file, you will get either a Siebel download dialog box, or an Internet Explorer download dialog box. This depends on whether or not the record to which the attached file belongs is read-only or not. If the record is read-only, the Internet Explorer dialog box appears. If the record is not read-only, the Siebel dialog box appears.

 

You can attach a file created in another application to a record wherever the Attachments view is available within a screen. A variety of file types, such as Microsoft Outlook email messages, Microsoft Word documents, or image files, can be attached.

 

The File System Manager (FSM) server component manages the File System and handles all requests for files that reside within the Siebel File System. FSM interacts directly with the Siebel File System to invoke requests for access to files. Most server components use FSM to access files by submitting requests to Server Request Manager. However, Siebel Remote components do not use FSM to access the File System. Instead, Siebel Remote components use Synchronization Manager to access the File System.

Attachment Import Process through EIM

In Siebel applications, external files are stored in the Siebel file system. These files are compressed and stored using a specialized naming convention. Connected users have direct access to the Siebel file system. Mobile users have a local file system in the Siebel client installation directory. Copies of files retrieved from the Siebel file system during synchronization are stored in the local system for access while the client is offline. These files are accessible and readable by the Siebel client.

Siebel 7 uses the File System Manager for file attachments; therefore the file attaching operation is different from previous releases of Siebel applications. For the Siebel Web Client, the web browser will get the file from the user's machine and send it to the Siebel Web Server. The Siebel Web Server Extension will then send the file to a temp folder that can be accessed by the Siebel Server component. The Siebel Server then compresses the file and adds it to the Siebel File System.

Prerequisites

The following are the prerequisites to be checked for proper migration of attachments:

 

  • EnterpriseIntegration manager component is up and running.
  • Source file system should be in data could be extracted and could be transferred in flat file and physical files can be moved via folders
  • Make sure the file system has sufficient space for new attachments.
  • Check the user access privileges on the file system.
  • Check the file system parameters on the client .cfg file to make sure that the correct file system is being accessed and also that the path to the file system is correct.
  • Check that the file system is shared
  • The File System Manager is Online in target system

 

Identifying an EIM table for a given entity

 

To identify the EIM table for a given entity we have to move to that particular view in the Application UI and find the Business components for the entities in that view from Help->About View->Business Component

 

From tools ,the table related to Business components could be found [Hint : All Attachment related base tables end with _ATT].To find the EIM Table used during migration ,move to the flat tab->EIM Interface Table->Target Table with the parent Entity base table. You will find a list of tables which can be used to load the data.[Hint: EIM tables for Attachments loading will start with EIM_ and  end with _DTL].

 

From Types tab->EIM Interface Table->EIM Table Mapping->Attribute mapping we can find the mappings for the EIM table to Base tables for migrating the data.

 

Note: The columns whose names begin with FILE_ are required columns

File Attachment Columns

Three EIM table columns must be populated in order to import file attachments. The below table describes these columns and uses the attachment file budget99.doc as an example.

 

Table:  File Attachment Columns

Column

Description

Example

FILE_NAME

This column requires the root filename of the file attachment.

FILE_NAME="budget99"

FILE_EXT

This column requires the extension type of the file attachment (DOC, XLS, or TXT).

FILE_EXT="doc"

FILE_SRC_TYPE

This column requires the value "FILE" or the rows cannot be imported.

FILE_SRC_TYPE="FILE"

File Attachment Folder

As of Siebel 7.0, Siebel Anywhere requires that file system attachments be located in the \att subdirectory of the Siebel File System. If you are upgrading from Siebel 6.x, you must create this subdirectory in the Siebel File System and copy file system attachments to it.

To make file attachments accessible to Siebel Anywhere

  1. In the existing file system structure (for example C:\siebfile), create an att subdirectory if it does not already exist: (example: C:\siebfile\att )

Creating the att subdirectory does not adversely affect the installation of your Siebel Server. (You install the Siebel Server at a later point.)

  1. Copy (do not move) all files located under the \siebfile directory to the \siebfile\att directory so that all file attachments are accessible by Siebel Business Applications.
  2. Verify that files have copied correctly to the \siebfile\att directory. After this has been verified, clean up the file system.

Writing an IFB for Attachments

  • Find the base tables and EIM tables for attachments  and Prepare the mapping document for the base table and EIM tables for the chosen entity.
  • Prepare the IFB file for the EIM Process with the below parameters.

USER NAME : Database User name

  PASSWORD : Database password

  PROCESS : Initial/main section to Run

  TYPE : Values like IMPORT, EXPORT, DELETE, MERGE, SHELL

  BATCH : IF_ROW_BATCH_NUM to run against

  TABLE : Interface table for Process

  ONLY BASE TABLES : Process only these tables

  DEFAULT COLUMN(For import) : Default value for an interface column

IGNORE BASE TABLES : Do not process these tables

  IGNORE BASE COLUMNS : Do not process these columns

  INCLUDE : Sub Process to include

  FIXED COLUMN(For Import) : Set column to specified value

  LOG TRANSACTIONS : Default value depends on system preference

ATTACHMENT DIRECTORY: any customized folder that customer’s userid has read/write access to place /read the file

In the next section, let’s take a case study about loading Attachments against accounts which provides the detailed steps of all the processes involved in this.

Case Study - Loading Account Attachment through EIM

                       

This section describes about loading Accounts and associating attachments to account through EIM

 

Siebel Base Tables Involved:

 

 

ACCOUNT

S_PARTY

S_ORG_EXT

S_ORG_BU

S_ACCNT_BU

S_ADDR_ORG

ATTACHMENTS

S_ACCNT_ATT

 

Siebel EIM Tables:

 

 

ACCOUNT

EIM_ACCOUNT

ATTACHMENTS

EIM_ACCNT_DTL

 

 

Note:  PAR_ROW_ID is which is resolved using ACCNT_BI, LOC, and NAME.

 

Extract data from the Siebel source system:

                       

                        We need to analyze the system and find the tables where the entity is stored. Next step is to move the data to the source system ‘s base table to the EIM tables using the Configuration file (.ifb).[Various parameters which can be used according to the business need is been described below]. From the EIM tables data is moved to the flat files using SQL Loader.

 

  • To export data to EIM tables, EIM performs the following steps:
  • EIM initializes EIM tables for export .If CLEAR INTERFACE TABLE in the configuration file is TRUE, all rows with the specified batch number are deleted. Otherwise, a warning is issued if rows already exist with the specified batch number.
  •  It uses export parameter expressions in the configuration file to locate and export table rows:     
  • If EXPORT ALL ROWS is TRUE, ignore any EXPORT MATCHES    parameters and export all rows.
  • If EXPORT ALL ROWS is FALSE, use EXPORT MATCHES parameters to locate specific rows.
  • Set IF_ROW_STAT to EXPORTED for rows that are successfully exported.
  • For parent tables, EIM locates child table rows and exports them to their corresponding EIM tables

 

  • EXPORT ALL ROWS - Specifies that all rows in the target base table and secondary tables are to be exported. The default value is FALSE. Existing values in the EIM table and export matches expressions are ignored. For all columns to export using an EIM table (both data from the base table and data from related child tables), you need to make sure this parameter is set to TRUE (you may need to add this line if it does not currently exist) in the .IFB file.
  • The EXPORT MATCHES parameter specifies a WHERE clause expression for filtering base table rows. The value is in two parts: the Siebel EIM table name and the filter expression that goes against the target base table. The expression is applied against the target base table for the EIM table.
  • The expression is a self-contained WHERE clause expression (without the WHERE) and should use only literal values or unqualified column names from the base table. There must also be a space separating the operator from the operand.
  • EXPORT MATCHES can be used only against a target base table, or against a non-target base table that is an extension table of S_PARTY when the target table is S_PARTY.

 

  • To export all rows from the tables that are mapped in an EIM table, set the EXPORT ALL ROWS parameter for the file to TRUE in the specific export batch section of the EIM configuration file. The following example contains lines that may be used in the EIM configuration file to export all data rows from the Account attachment table.

 

Sample export process:

[Siebel Interface Manager]
      USER NAME = "SADMIN"
      PASSWORD = “SADMIN”
      PROCESS = Export Account  Atachment

[Export SR ATT]
TYPE = EXPORT
BATCH = 1000
TABLE = EIM_ACCNT_DTL
EXPORT ALL ROWS= TRUE

 

Place the Ifb into <SiebelServer>\Siebsrvr\Admin folder and run the EIM job inserver Administration - Server Management->Jobs to extract the data from the base tables to EIM tables.

This will import the data to the EIM_SR_DTL table and exports the actual files to SIEBEL HOME\OUTPUT directory.

 

You can specify the other directory if you wish and make sure the directory exists on a Siebel Server machine and you have read and write access to it. Example:

ATTACHMENT DIRECTORY = SIEBEL_HOME\TEMP.

 

There is no parameter in EIM to separate the process of populating EIM table and actual file exports. By default, Siebel uses SIEBEL_HOME\OUTPUT folder as an attachment directory and export the actual files to this directory in order for users to migrate files from one location to the other.

 

 

Steps followed to Load data into the target system:

 

 

 

Steps

Step Description

 

Step 1

Prepare the mapping document for the entities received say, Account and attachment. [EIM uses interface table mappings to map columns from interface tables to Siebel base tables]

 

Step 2

Prepare the ctl file to load the given /prepared data. Place the file in the path specified in the batch file say, D:\sea_78\EIM_Training\POC_ACNT_ATTACHMENT

 

Step 3

Place the data files in appropriate folders. Place the file in the path specified in the ctl file say, D:\sea_78\EIM_Training\POC_ACNT_ATTACHMENT

 

Step 4

Run the BAT file toload data from flat file into the EIM tables.

 

 

Step 5

Place the corresponding attachment files in folder <SiebelServer>\Siebsrvr\Input for which you have loaded the attachment records in EIM table

 

Step 6

Place the IFB files for Account and Attachment in <SiebelServer>\Siebsrvr\Admin.

 

Step 7

Run the EIM task for loading account data in server Administration - Server Management->Jobs first as account in the parent data.

 

 

Step 8

Run the EIM task for loading attachment data in server Administration - Server Management->Jobs next to load the attachment data and associate it to the account loaded

 

Step 9

Check the IF_ROW_STAT from the EIM tables are IMPORTED.

 

Step 10

Check in account attachment view for the loaded data. Refer figure 1 for the records loaded by EIM

 

Attaching URL's as attachment records

In addition to attaching files to records, you can also attach URLs to records to provide team members with the latest information.

You can also use these attachment columns to define hyperlinks. Below table explains the sample values to be populated in the columns.

 

Table 4.  Defining Hyperlinks With File Attachment Columns

Column

Setting

FILE_NAME

Set to actual URL

FILE_EXT

NULL

FILE_SRC_TYPE

'URL'

To view a URL record

  1. Drill down on the record to which you want view the URL.
  2. Click the Attachments view tab.

3.         The Attachments list appears.

The URL appears as a hyperlink in the Attachments list. You can click it to access the corresponding Web site.

NOTE:  If you cannot access the Web site after adding it as an attachment, it may be because you are not connected to the network.

Updating & Deleting Attachments

Updating File Attachments:

You can also update file attachments that have already been imported into the Siebel database.

In order to update file attachments, EIM deletes the old row pointing to the existing file attachment and then imports the new file attachment. After all file attachments have been updated, use the Siebel File System Maintenance Utility named sfscleanup.exe (during hours when the network is least laden) to clean the file attachment directory of any unused file attachments.

To update file attachments:

  1. Update the file attachment by completing the steps in Importing File Attachments.
  2. Once all file attachments have been updated, run the Siebel File System Maintenance Utility named sfscleanup.exe to clean up the file attachment directory.

NOTE:  EIM does not support merging of file attachments.

Deleting File Attachments

You can also delete file attachments that have previously been imported into the Siebel database.

In order to delete file attachments, EIM deletes the row pointing to the file attachment. After all file attachments have been deleted, use the Siebel File System Maintenance Utility named sfscleanup.exe during hours when the network is least laden to clean the file attachment directory of any unused file attachments.

To delete file attachments:

Run an EIM delete process for all file attachments that you want to delete.

After all file attachments have been deleted, run the Siebel File System Maintenance Utility named sfscleanup.exe to clean up the file attachment directory.  

Cleaning Up the Siebel File System

The task of cleaning up the Siebel File System by removing orphan records is done using sfscleanup.exe, a command-line utility. Orphan records are those that remain if a user deletes a parent record in the application that has associated child records; the child records are not deleted from the Siebel File System with the parent record and must be removed using sfscleanup.exe.

This utility is located in the binary (bin) subdirectory within the Siebel Server root directory. The sfscleanup.exe utility processes every file in the file attachment directory and performs one of several operations to each file depending on the file type and the parameters that are set. For descriptions of the run-time parameters that you can set when running sfscleanup.exe, see the following procedure. For descriptions of the file types and the associated operation performed by sfscleanup.exe during processing, see Table below[File Types and Associated Operation].

To clean up the file attachment directory using sfscleanup.exe:

  1. At the command prompt, change directory to the bin subdirectory within the Siebel Server root directory.
  2. Run sfscleanup.exe using the parameters listed in the following table as shown in the following example:

sfscleanup /u sadmin /p secret /f \\server1\files /x \\server1\logs\sfscleanup.log

 

Parameter

Value

Description

Required?

/u

Username

Username ID.

Y

/p

Password

Username password.

Y

/c

ODBC data source

Set this value to the ODBC data source. Default value is set to the environment variable, SIEBEL_DATA_SOURCE.

N

/d

Siebel table owner

Set this value to the Siebel tableowner. Default value is set to the environment variable, SIEBEL_TABLE_OWNER.

N

/f

Path for file directory

Set this value to the path for the file attachment directory. Do not append att to the file attachment directory path.

Y

/x

Path for output file

Set this value to the path for the output file.

N

/m

Path for move directory

Set this value to the path for the directory where discarded files will be moved.

N

/n

Remove old revisions

Determines if old versions of file attachments will be removed. To remove old versions, set this value to Y. Default value is N.

N

/r

Generate report file only

Set this value to Y to generate only a report file. If set to Y, the report file contains only the columns File Name and File Type. Default value is N.

N

/g

Garbage files

Set this value to remove garbage or non-Siebel files. Default value is N.

N

Further details on some parameter settings:

  • /n. By default old file revisions are kept. Such files are marked ANCIENT in the log, and represent old revisions of an existing attachment record; that is, their row ID matches with the database record but not the file revision number. To delete such files, set the /n parameter to Y.
  • /g. If the file system contains files that were not created by the File System Manager component (alias FSMSrvr), then their deletion or move is controlled by the /g parameter. This parameter includes non-Siebel files or directories. By default these files are not deleted. The directories are not affected or moved by sfscleanup.exe.

If you specified an output file using the /x parameter, sfscleanup.exe generates a log file listing the operations that were performed. The output file is a tab-delimited text file that contains the following columns:

File Name

This column lists the name of each file that was processed.

File Type

This column lists the type of each file that was processed. Table[File Types and Associated Operation]lists the possible file types and the associated operation performed by sfscleanup.exe during processing.

 

Table . File Types and Associated Operation

File Type

Description

Operation

CURRENT

The file has a corresponding record in the file attachment database table.

KEPT

NEW

The file is less than one hour old. The sfscleanup.exe program does not check for the file in the file attachment database table.

KEPT

ORPHAN

The file does not have a corresponding record in the file attachment database table.

DELETED

INVALID

The file (or directory) is not a file attachment. If sfscleanup.exeis attempting to delete a subdirectory that is not empty, the operation errors out. This gives you an opportunity to review the files contained within the directory before deletion.

KEPT

ANCIENT

The file has an associated record in the database with a different revision number.

KEPT

 

 

1For descriptions of each operation, see Table Operations

2If you used the /m parameter to set a move directory, the operation performed is MOVED.

3If you set the /g parameter to Y, the operation performed is DELETED.

4If you set the /n parameter to Y, the operation performed is DELETED (or MOVED if you used the /m parameter to set a move directory).

Operation

This column lists the type of operation that was performed during processing. Table :Operations lists the types of operation that sfscleanup.exe may have performed during processing.

 

Table : Operations

Operation

Description

KEPT

The file was kept.

DELETED

The file was deleted.

MOVED

The file was moved to the directory specified by the /m parameter. Files will only be moved if you used the /m parameter.

KEPT_DIR

The item was kept because it was a directory and requires manual processing.

KEPT_ERROR

The file was kept because an error occurred while trying to move or delete the file.

 

Troubleshooting EIM Attachment load process

 

File System Problem

 

Problem:

 

The File System does not appear to be working correctly. Whenever you drill-down on a document such as a Literature item or a Correspondence Template, you get the error "The file <filename> could not be found on any specified file system. The File System Manager is Online.
The problem occurs for both the mobile web client (when connected to the server) as well as the high-interactivity client.

Solution:

 

 

1) For the mobile web client you have to set the FileSystem parameter in the CFG file as follows:

\\CAKNACADMLSD03\SiebFileSystem\att

The problem that appeared with the beta 7.0.1 seems to be resolved. Product defect #12-62JKWR which addressed this (File system doesn't work. User cannot launch any records, which should work with the file system) has been fixed and you should use the FileSystem parameter in the CFG as mentioned above.

2) The Server Parameter for "Siebel File System" should be set as follows:

    \\CAKNACADMLSD03\SiebFileSystem

and not E:\SiebFileSystem. You will need to specify the UNC sharename for the "Siebel File System" server parameter if you did not when installing the Siebel Server. This is mentioned in "Siebel Server Installation Guide for Microsoft Windows", chapter "Installing the Siebel Server", section "Creating a File System".

Note: CAKNACADMLSD03 is the server name.

The standard literature items or correspondence templates must be copied to the \att subdirectory of the Siebel File System as mentioned into the bookshelf.

 Moving Data from 6.X to 7.X

During the upgrade from Release 6.x, data from attachments in S_ORG_INT_ATT were migrated to S_ACCNT_ATT and attachments in S_EMPLOYEE_ATT were migrated to S_CONTACT_ATT.

Schema table names are included in the attachment file names.

The utility chng_file_sys.bat copies and renames all files named S_EMPLOYEE_ATT*.SAF to S_CONTACT_ATT*.SAF and all files named S_ORG_INT_ATT*.SAF to S_ACCNT_ATT*.SAF so that they correspond to new table names.

 Limitation On UNIX Platform

There is a limitation when Customer wanted uncompress all the file attachments to it's original names and format on UNIX platform.

On Unix, platform you have ssezip, sseunzip and ssemuzip available under Siebel 7.5.3 environment. Note: these utilities do not exists under Siebel 7.7 and Siebel 7.8 release, however you can use Siebel 7.5.3 utilities to uncompress file attachments.

Sample Account Attachment view

 

The file attachment applet (or attachment applet) provides access to external documents, such as spreadsheets, word processing documents, and slide presentations, from within Siebel applications. A file attachment applet provides the following capabilities:

  • Allows the user to open a document of any Windows-supported file type by clicking on its name in a list.
  • Allows the user to add document files to a list, edit them, or remove them.
  • Provides synchronization and shared access support for attached documents

In the  account attachment view the upper applet is the standard Account Form Applet. The lower applet is a file attachment applet called Account Attachment Applet. There is a master-detail relationship between the account and the list of account attachments, so that all file attachments for the current account are listed in the lower applet.

Each document is represented by a row in the attachments list. The document's filename, local/server status, file size, Windows file type (filename extension), and date of last update are displayed. Additionally, the name of each file appears in underlined, colored text, indicating that the file may be opened in the appropriate Windows application by clicking on the name.

Pages

Subscribe to Siebel EAI