You are here

Siebel EAI

Is it possible to add a searchspec to a child integration component when querying with EAI Siebel Adapter?

It is possible to add a searchspec to child integration components but some restrictions apply.
As seen in document "searchspec on integration Component (Doc ID 523483.1)" , you must also search on the parent.
Lets take the example of parent Accounts and child Contacts.
If you do a search on Account Name = ABC and contact Last Name = Smith it will first query all accounts whose name is ABC, then for each account it will filter the child contacts whose last name is Smith.
If one of the acount records do not have a contact Last Name = Smith, the parent will still be in the output.
If you only search on contact Last Name = Smith without any search on the parent account it will still run and no errors will be seen.
But the results may not be what you are looking for.
It will bring back ALL accounts as you passed no search on accounts.
Then for each account it will bring contacts whose last name is Smith .
If a parent account does not have a contact whose last name is Smith the parent account will appear in the result set anyway, without any children.
The important point here is it applies the searchspecs separately. First at the parent (even if no searchspec was passed to the parent) and then to each child of the returned parent records.
Doc ID 523483.1 explains this in more detail, but it uses as examples the searchspecs '[Account.Updated] =' +Today() and [Contact.Updated]=' + Today() 

Basic Troubleshooting Steps for EAI JMS Transport

 

The EAI JMS Transport is provided to allow connection to a JMS queue / topic. This document will outline overall required steps (referencing document as necessary) in order to achieve this.

NOTE: the JMS provider .jar files as well the content of the jndi.properties file is provided to illustrate JNDI/JMS connectivity setup to instance of the Oracle J2EE Application Server 10g (10.1.3.x), known also as the OC4J Server.The JMS messages Persistant Store in this example is the Oracle Advanced Queuing (AQ) feature of Oracle Database Server.

Review required settings for EAI JMS Transport

Before attempting to call the EAI JMS Transport, you will need to configure your Siebel client / server.

Important considerations are below.

Whether running a Siebel dedicated client, or a Siebel Server component, you need to provide details on where to find the Java Virtual Machine (JVM) and CLASSPATH.

If you are running a Siebel dedicated client, you edit the appropriate .cfg with required entries, for example :

NOTE HERE:

  • Siebel Java folder is: C:\JRE
  • Siebel Installation folder is: C:\SBL
  • Siebel folder with the "jndi.properties" file: C:\JNDI
  • Siebel folder of OC4J ( J2EE Application Server 10.1.3.x) .jar and ..class files collection is: C:\JMS

NOTE: the JCAProperties.class of the oc4j-internal.jar OC4J archive must be extracted in this folder keeping its name space hierarchy as folders tree (C:\JMS\com\evermind\util). Following command of java archiver utility (JAR) can be used to achieve it: jar vxf oc4j-internal.jar com/evermind/util/JCAProperties.class
WARNING: The the oc4j-internal.jar OC4J archive should NOT BE INCLUDED in the CLASSPATH.

 

[JAVA]
DLL=C:\JRE\bin\client\jvm.dll

CLASSPATH=C:\JNDI;C:\SBL\CLASSES\Siebel.jar;
C:\SBL\CLASSES\SiebelJI_enu.jar; C:\JMS;C:\JMS\jndi.jar; C:\JMS\jms.jar; C:\JMS\oc4jclient.jar;C:\JMS\optic.jar;
C:\JMS\dms.jar; C:\JMS\ejb.jar;C:\JMS\mail.jar; C:\JMS\bcel.jar;C:\JMS\pcl.jar;C:\JMS\jta.jar;

VMOPTIONS="-xrs -Djava.compiler=NONE  -Djms.log=C:\SBL\LOG\jms_log"

 

Note, in addition to the Siebel jar files, you will need the jar files required by your JMS server (please refer to the documentation from your JMS provider).

If you are running on the Siebel Server, you will need to configure the JAVA named subsystem (type JVMSubSys) to provide the same properties.

For further information, see: Transports and Interfaces: Siebel Enterprise Application Integration > Java Message Service Transport

 

2. The jndi.properties

The EAI JMS Transport will attempt to locate a jndi.properties file from a directory named in the CLASSPATH. This file will typically denote the Initial Context Factory and Provider Url, for example :

NOTE HERE:

  • oc4j_host - the name of the OC4J Server machine, that hosts the JNDI provider
  • 6003 - the port of the opmn instance to access the OC4J Server
  • oc4j_soa - the name of the OCJ4 Instance
  • oc4jadmin/welcome1 - the name/password of the OCJ4 user who is allowed to

java.naming.factory.initial=oracle.j2ee.naming.ApplicationClientInitialContextFactory
java.naming.provider.url=opmn:ormi://oc4j_host:6003:oc4j_soa
java.naming.security.principal=oc4jadmin
java.naming.security.credentials=welcome1

Note, the actual values provided should be as documented by your JMS provider.

 

The VMOPTIONS (in the client cfg, or JAVA named subsystem) can be used to specify a log file, for example :

VMOPTIONS="-xrs -Djava.compiler=NONE -Djms.log=C:\SBL\LOG

 

(note, actual file created for above would be C:\SBL\LOG\jms_<nnnn>.txt, where <nnnn> is process id of the server component, or for dedicated client process id of the siebel.exe)

 

 

For dedicated client, set Siebel logging per Doc ID 475587.1 How Should Client Side Logging Be Set? (please set SIEBEL_LOG_EVENTS=all).

For Siebel Server components, set tracing for your component from srvrmgr :

change evtloglvl %=5 for comp <component>

Verify JMS is working as expected outside of Siebel application

The EAI JMS Transport acts as a java client to the target JMS server. When troubleshooting problems with the EAI JMS Transport, it is important to confirm whether the same operations are working fine outside of Siebel (and from the same machine and operating system user). For example, if a problem is found with Send method of the EAI JMS Transport, first confirm that it is successful when the same is tested outside of Siebel. One way to prove this is with a simple java client, to send a test message to a queue (using the same Classpath, Provider Url, Initial Context Factory, Connection Factory and Queue). An example java source is provided below, the only section requiring changes is that marked 'Change settings below according to JMS provider requirements'. Set the CLASSPATH to include required jar files (per your JMS provider documentation), compile with javac, and test by running :-

TestJMSClient.java:

NOTE HERE:

  • AQ Resource provider name (see "oc4j-connectors.xml" file in the "<j2ee>/<instance> /config" OC4J folder): myRP1
  • Connection Factory names (see "oc4j-ra.xml" file in "<j2ee>/<instance> /application-deployments/default/<resource adapter name>" OC4J folder):
    • Resource Name: QueueConnectionFactories/MyQCF1
      • NOTE: this name is seen in JNDI context as: java:comp/resource/myRP1/QueueConnectionFactories/MyQCF1
    • JNDI Name: jms/MyConnectionFactory1
      • Note: this name simplifies Connection Factory look up in JNDI context
  • Queue names (see "oc4j-connectors.xml" file in the "<j2ee>/<instance> /config" OC4J folder):
    • Resource Name: Queues/MyQ1
      • NOTE: this name is seen in JNDI context as: java:comp/resource/myRP1/Queues/MyQ1
    • JNDI Name: jms/MyQueue1
      • Note: this name simplifies Queue lookup in JNDI context

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.jms.*;

public class TestJMSClient
{

public static void main(String[] args)
{


//* Change settings below according to JMS provider requirements


// Set Context Factory
final String myContextFactoryName = "oracle.j2ee.naming.ApplicationClientInitialContextFactory";

// Set the target queue connection factory
final String myQueueConnectionFactoryName = "jms/ConnectionFactory1";
// same as: "java:comp/resource/myRP1/QueueConnectionFactories/QCF1";
// Set the target queuename
final String myQueueName = "jms/MyQueue1";
//same as: "java:comp/resource/myRP1/Queues/MyQ1";

// Set UrlProvider
final String myUrlProviderName = "opmn:ormi://oc4j_host:6003:home";

// Set user+password credentials
final String myUser = "oc4jadmin";
final String myPassword = "welcome1";



String classPath = System.getProperty("java.class.path",".");

Context jndiContext = null;
QueueConnectionFactory myQueueConnectionFactory = null;
QueueConnection myQueueConnection = null;
QueueSession myQueueSession = null;
Queue myQueue = null;
QueueSender myQueueSender = null;
TextMessage myTextMessage = null;

/*
* To override "jndi.properties" entries:
* one could set the environment for a connection to the JMS server
*/
/*JNDI context parametrization*...
Hashtable myEnv = new Hashtable();
myEnv.put(Context.INITIAL_CONTEXT_FACTORY, myContextFactoryName);
myEnv.put(Context.SECURITY_PRINCIPAL, myUser);
myEnv.put(Context.SECURITY_CREDENTIALS, myPassword);
myEnv.put(Context.PROVIDER_URL, myUrlProviderName);
...*JNDI context parametrization*/

System.out.println("Using :-");
System.out.println("Context Factory=" + myContextFactoryName);
System.out.println("Queue Connection Factory=" + myQueueConnectionFactoryName);
System.out.println("Url Provider=" + myUrlProviderName);
System.out.println("");
System.out.println("Current CLASSPATH=" + classPath);
System.out.println("");

/*
* Set the Context Object.
* Lookup the Queue Connection Factory.
* Lookup the Queue
*/
try
{
jndiContext = new InitialContext(); //JNDI context parametrization: myEnv);
System.out.println("Lookup Queue Connection Factory : " + myQueueConnectionFactoryName);

myQueueConnectionFactory = (QueueConnectionFactory)jndiContext.lookup(myQueueConnectionFactoryName);
System.out.println("OK");
System.out.println("Lookup Queue " + myQueueName);

myQueue = (Queue)jndiContext.lookup(myQueueName);
System.out.println("OK");
}
catch (NamingException e)
{
System.out.println("JNDI lookup failed: " + e.toString());
System.exit(1);
};

/*
* Create connection factory, session, sender and send message
*/
try
{
myQueueConnection = myQueueConnectionFactory.createQueueConnection();
myQueueSession = myQueueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
myQueueSender = myQueueSession.createSender(myQueue);
myTextMessage = myQueueSession.createTextMessage();

System.out.println("Sending message...");

myTextMessage.setText("Testing 123");
myQueueSender.send(myTextMessage);
System.out.println("OK");
System.out.println("Sent message: " + myTextMessage.getText() + " - " + myTextMessage.getJMSMessageID());
}
catch (JMSException e)
{
System.out.println("Exception occurred: " + e.toString());
}
finally
{
if (myQueueConnection != null)
try
{
myQueueConnection.close();
}
catch (JMSException e)
{
System.out.println("Close error: " + e.toString());
};
};
}; // end main
}// end TestJMSClient class

If this is not successful, please verify required settings are correct with your JMS provider. Once successful, then verify with detailed logging (refer 3. Tracing / Logging) that the EAI JMS Transport is using the same settings.

Common Errors

 

ErrorCauseAction
SBL-EAI-05010

Class name incorrect or does not extend SiebelBusinessService : com/siebel/data/SiebelPropertySet -- JVM Exception:java.lang.NoClassDefFoundError: com/siebel/data/SiebelPropertySet(SBL-EAI-05010)
This error is usually caused by incorrect entries for CLASSPATH and/or DLL in the named subsystem 'JAVA' (or for dedicated client, the [JAVA] section in the client cfg).

Ensure the Siebel.jar and SiebelJI_[lang].jar files are correctly named in the CLASSPATH, and exist in the specified directory (and that the directory is accessible to the relevant operating system user).

For unix, ensure the separators in the CLASSPATH are ':' (colon), not ';' (semi-colon).

SBL-EAI-05000 / SBL-EAI-05012

SBL-EAI-05000: Business Service call returned error code JNDI_ERROR and message: Exception: javax.naming.NameNotFoundException: myQCF; Message: myQCF

SBL-EAI-05102: JNDI error in EAI JMS Transport: 'Exception: javax.naming.NameNotFoundException: myQCF; Message: myQCF'.
The exception javax.naming.NameNotFoundException: indicates a failure to locate the ConnectionFactory and/or SendQueue parameters as supplied to the EAI JMS Transport.(1) Confirm that the supplied parameters are correct, and that the same Queue Connection Factory and Queue can be accessed outside Siebel with the test java client.
(2) Confirm, that the host names of OC4J Server machine and Oracle AQ DB machine are known to Siebel Server (Note: Definition of OC4J Data Source for AQ DB and other OC4J objects may include references to host names, that may not be known (not resolvable) on the Siebel Server side),
SBL-EAI-05000 / SBL-EAI-05102

SBL-EAI-05000: Business Service call returned error code JNDI_ERROR and message: Exception: javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory]; Message: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory


SBL-EAI-05102: JNDI error in EAI JMS Transport: 'Exception: javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory]; Message: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory'.

SBL-EAI-05000: Business Service call returned error code JNDI_ERROR and message: Exception: javax.naming.CommunicationException: Can't find SerialContextProvider; Message: Can't find SerialContextProvider











The initial context factory (as provided in the jndi.properties 'java.naming.factory.initial') could not be found.


The initial context could not be instantiated (as provided in the jndi.properties)

 

Check the name of initial context factory in the jndi.properties is correct, and that CLASSPATH has all required JMS vendor jar files.

 

Confirm that the same java.naming.factory.initial setting, with same CLASSPATH works outside of Siebel with the test java client.

 

Confirm that the security credentials, once provided, in the java.naming.security.principal and java.naming.security.credentials parameters are correct.

How To Pass the Output of EAI Siebel Adapter Query Method in a Custom Business Service Published as an Inbound Web Service ?

 Steps:

  1. Log in to Siebel Tools and create a new custom business service.e.g: MyBS.
  2. Expand to Business Service Method and add a record:
    Name = MyQuery
  3. Expand to Business Service Method Arg and add 3 records:
    • SiebelMessage, Type = Input, Data Type= Integration Object, Storage Type=Hierarchy , Integration Object = "EAI Account" (or your preferred IO)
    • MyIO, Type = Output, Data Type= Integration Object, Storage Type = HIERARCHY, Integration Object = "EAI Account" (or your preferred IO)
    • Error Message, Type = Output, Data Type = String, Storage Type = Property

Publishing Inbound Web Servicesfunction Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
if (MethodName == "MyQuery" )
{
// get hold of EAI Siebel Adapter BS
var adpBS = TheApplication().GetService("EAI Siebel Adapter");
// Variable to hold EAI Siebel Adapter output
var psQueryOutput = TheApplication().NewPropertySet();
// Variable to hold MyIO output argument.
var MyIOOutput = TheApplication().NewPropertySet();

// receiving an IO as input to the web service
// it gets passed to "Inputs" variable.
// passing "Inputs" directly to EAI Siebel Adapter.

adpBS.InvokeMethod("Query",Inputs,psQueryOutput);

// (Doc ID 476560.1)
MyIOOutput.SetType("MyIO");

// goes down the propertyset till you find the IO you are looking for.
// hint: Doc ID 477881.1

MyIOOutput.AddChild(psQueryOutput.GetChild(0).GetChild(0));

// set the output of your custom BS
Outputs.AddChild(MyIOOutput);
Outputs.SetProperty("Error Message","Record Retrieved Successfully");
// dump the output structure here
DumpPropSet(Outputs);
adpBS = null;
psQueryOutput = null;
MyIOOutput = null ;
return (CancelOperation);
}
else
{
return(ContinueOperation);
}
}

    4. Right click the business service name and select Edit Server Scripts.
    5. Choose eScript as the programming language.( could be Siebel VB too but the code sample below is eScript). Add the code below, review and compile to the server SRF.
    6. Publish the business service as an inbound web service the usual way.
    The steps are descriped in Bookshelf: Integration Platform Technologies: Siebel Enterprise Application Integration > Web Services > Invoking Siebel Web Services Using an External System >
    Notice during the publishing process, the BS will NOT be listed. You have to add a new record and type in the BS name as documented in bookshelf.
    7. Test. You may want to use a test utility such as SOAPUI or any other tool.
    You may as well use use a siebel dedicated client and sample database as seen in How To Test Siebel Inbound Web Services Using a Siebel Client (Doc ID 473838.1).
    If testing with a Siebel dedicated client, the following document may be helpful too: How To Create Integration Object Instances Programmatically (Doc ID 556846.1)

The DumpPropSet(Outputs) below helps us understand both how to pass data as output as well as data for input scenarios.

The important here is the structure should have 4 levels :

1) Inputs (or Outputs) property. It does not have any type set.
2) Business service method argument level property. This is a child of (1) above and has type = business service method argument name (in the example below "MyIO")
3) Integration Object representation. This is a child of (2) above and has type =ListOf<IO_NAME>
(in the example below ListOfEAI Account)
4) root integration component level. Should have type = root IC name.
In this case type = Account

Steps to Create VBC

1. Create a new BC based on the Class CSSBCVExtern.
2. Do not associate any tables to this BC since VBC are not based on an underlying table but rather is based on a Business Service.
3. Create the fields associated with VBC.
4. The field names must exactly match the name of the columns of the table that this VBC will reference.
5. Do not specify column or type for the fields.
6. Under the Business Component / Business Component User Property, create a new entry:
  a. Name: Service Name
  b. Value: AAA Test Business Service
  c. The Value can be any name that will use to create your new Business Service.
  d. "Name" must be "Service "Name".
7. Create a new Business Service with the same name that you used in the Business Component User Property above.
8. Create the various methods for your Business Service.
Some examples are:
  a. Delete, Init, Insert, Preinsert, Query, Update
  b. The minimum that you should have is Init and Query.
  c. Sample codes are given below.
9. Now define the Business Service Method Arg that goes with each of the Methods.
10. Associate your new VBC to a Business Object.
11. Create a new applet based on your VBC.
12. The example here is a list applet.
13. Add the VBC columns to the list applet.
14. Create a new view based on your new applet that is based on your VBC.
15. Associate the new View to a screen.
16. Don't forget to add the view to Application / Views in the application.
17. Also, add the view to an appropriate responsibility.

 

EAI Interview Questions and Answers - Test 1

Total No. of Questions: 20

Time Duration             : 30 Minutes

Answers are highlighted in Bold Green.

 

  1. COM Data server  provides access to Siebel database through

 

  1. ActiveX controls
  2. .DLL and .TLB files
  3. Proxy classes
  4. Application instance

 

  1. 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.

 

  1. True
  2. False

 

  1. EAI Siebel Wizard is used to create which of the following objects?

 

  1. Internal Integration Object
  2. External Integration Object
  3. Interface Integration Object
  4. Siebel Business Object

 

  1. Synchronize Method is a part of which Business service?

 

  1. EAI XML Converter
  2. EAI Siebel Adapter
  3. XML Hierarchy Converter
  4. EAI File Transport

 

  1. Which Business service converts data from one encoding to another?

 

  1. EAI MIME Hierarchy Converter
  2. XML Hierarchy converter
  3. Transcode
  4. IntObjHierToXMLDoc

 

  1. EAI XML Write to File combines the functionality of which two business services? Choose two.

 

  1. XML Hierarchy converter
  2. EAI XML Converter
  3. EAI XML Read from File
  4. EAI File Transport

 

  1. Integration Workflow if invoked through declarative call, cannot execute asynchronously.
  2. True
  3. False

 

  1. Enterprisewide groupings of parameters that specify how the target application responds to inbound messages are called ______________.

 

  1. Enterpriseserver parameters
  2. EnterpriseSystem Names
  3. Named Subsystems
  4. Named Enterprise systems

 

  1. All incoming EAI requests are handled by _________________

 

  1. Siebel Server
  2. EAI.cfg
  3. EAI object manager
  4. Siebel object manager

 

  1. Incase where Integration component field values differ between source and target application, you would use ________________________

 

  1. EAI value maps
  2. EAI data transformation engine
  3. Data mapper tool
  4. Auto mapper engine

 

  1. A business service that routes the messages based on their content is called _____________

 

  1. EAI Dispatch service
  2. EAI routing service
  3. EAI HTTP transport
  4. EAI XML converter

 

  1. The receiver component in an EAI Queue-based transport uses which two named subsystems? Choose two.

 

  1. Receiver service subsystem
  2. Receiver Data Handling subsystem
  3. Receiver Connection Subsystem
  4. Receiver Queue subsystem

 

  1. Which of the following are the benefits of ASI? Choose two.

 

  1. Are transport independent
  2. Uses data synchronization services
  3. Provides predefined integration interfaces
  4. Provide implicit mapping

 

  1. While creating web services, it is mandatory to specify the URL to be used by the client to access the web service.

 

  1. True
  2. False

 

  1. Reuse of business logic in an external application without reimplementing it is possible in case of data replication strategy.

 

  1. True
  2. False

 

  1. External business component derives data from ___________________

 

  1. EIM tables
  2. Interface tables
  3. External tables
  4. Staging tables

  

  1. Virtual business component cannot refer ____________________

 

  1. Spreadsheets
  2. Flat files
  3. External relational table
  4. Table object definition in Siebel repository

 

  1. Universal Application Network uses _______________ as an intermediary between source and target transformations.

 

  1. Common objects
  2. Web services
  3. Integration server objects
  4. Business Integration solutions

 

  1. Application Objects are used during _______________. Choose two.

 

  1. Integration flow
  2. Source Adapter flow
  3. Source Transformation flow
  4. Source Integration flow

 

  1. In Hub and spoke architecture, a spoke corresponds to _______________

 

  1. Integration flow + Adapter flow
  2. Source Adapter flow +  Target Adapter flow
  3. Adapter flow + Transformation flow
  4. Target transformation flow + Source Transformation flow
show the data from different Entities in a Single Applet by Creating a Database View

1. Create a new Database view e.g. ‘CX_V_CMP_CN_SUM’. The process of creating a new Database view is following: 

  1. Start SQL Developer and connect to your database.
  2. Check if you have sufficient rights to create and modify a database view.
  3. Create a Database view. The following file contains a pseudo SQL query used to create a database view. 
  4. Write a similar SQL query based upon your requirement to create the database view.
  5. Also run the below mentioned SQL statement to grant SELECT access to other user on the database view:

GRANT SELECT ON SIEBEL. CX_V_CMP_CN_SUMTO SSE_ROLE;

 2. Now, Go to your database connection and navigate to ‘Views’. You can see the newly created database view e.g. ‘CX_V_CMP_CN_SUM’ under ‘Views’ tab. One can see ‘Columns’, ‘Data’, ‘Grant’, Dependencies’, ‘Details’ and the SQL details of the database view here.

After creating database views on physical database, create a table in Siebel tools with the same name as of the Database view i.e. ‘CX_V_CMP_CN_SUM’.

                The ‘Type’ of this table should be ‘Virtual Table’ as it is mandatory.

Now, create all the columns as it is mentioned while creating the ‘Database view’.

3. Check In the newly created table ‘CX_V_CMP_CN_SUM’ to Server. No need to Apply and Activate the table as it is a database view and it is already created on the physical schema. 

4. Now, create a business component on the table ‘CX_V_CMP_CN_SUM’. Also, create all the mandatory fields based upon the column in the table ‘CX_V_CMP_CN_SUM’. 

5. Create a new applet to expose these fields on the user interface.

 NOTE: This is a very useful method for showing the results of a complex SQL query on Siebel application

Uncompress and download Attachments

Objective:To uncompress the server's .SAF file and store the same in the local machine in local\SiebelRoot\Client\TEMP folder 

Example:In Contact-->Attachment applet one custom button is placed with Method = "EventMethodDownloadfile".Clicking on that button for a particular Contact Attachment record, .SAF file stored in the server will get uncompressed and downloaded in the local \SiebelRoot\Client\TEMP folder. 

The sample code would be written in the Contact Attachment applet, as follows:

if(MethodName == "EventMethodDownloadFile")
{

try
{
var sFileReturn = "";
var sFileName = "";
var sStatus = "";
with(this.BusComp())
{
//The variable sFileReturn returns the uncompressed downloaded local file path and the String "Success" if the file download is successful
sFileReturn = InvokeMethod("GetFile", "ContactFileName");
sStatus = sFileReturn.substring(0, sFileReturn.indexOf(","));
if (sStatus == "Success")
{
sFileName = sFileReturn.substring(sFileReturn.indexOf(",") + 1);
}
throw(sFileName);//To test the local downloaded uncompressed file's location
}
}

catch(e)
{
throw(e);
}

finally
{
sStatus = null;
sFileName = null;
sFileReturn = null;
}
return (CancelOperation);
}

return (ContinueOperation);
SIA Billing Extern Service /VBC Caching Concepts

The Caching VBC enhances the existing horizontal CSSBCVRec VBC class and works in conjunction with the SIA Billing Extern Service business service. Although the name of this business service implies that it is billing specific, it is a generic service without any industry-specific functionality.  The VBC must be based on the CSSFABCVRec class. 

The VBC uses the following four user properties for its configuration:  

     User Property Name      

   Valid Values Description 

Enable Caching Y or N                                     

Y enables the caching of records retrieved by the VBC. N disables caching. 

Outgoing Integration Object Name         

An integration object name Name of the integration object to be passed to the Business Service 

ProcessName                                                   

A workflow process Name of the workflow process to be passed to the Business Service 

Service Name                                                    

SIA Billing Extern Service (Business Service)Name of the business service to be invoked when the VBC is executed 

NOTE: 

When the VBC is executed, the VBC calls the business service and passes it the integration object name and workflow process name. The business service instantiates the named integration object and populates it with values in the currently active business object without using the EAI Siebel Adapter. The business service passes the integration object instance to the SiebelMessage workflow process property and invokes the workflow process. The workflow process handles any integration tasks, including communicating with the external system. It receives data from the external system and populates a hierarchical process property that matches the field structure of the VBC.

Execute Workflows through Workflow policies of same/different group using different Components

In Siebel vanilla, whenever a Workflow Policy is created and the Program of the Workflow policy Action is “Run Workflow Process”, then by default Workflow Monitor Agent component of Siebel uses “Workflow Process Manager” component.

There can be a case when due to business requirements when a custom component is required for invocation of the workflow through the Policy.

Solution :

1.    Login into Siebel tools and go to Workflow Policy Program in OBE.

2.    Query for Run Workflow Process.

3.    Lock the object/project based on Object/project locking

4.    Go to Workflow Policy Program Arguments for this program.

5.    Select Action Type Argument and set the Visible parameter of the Action Type argument as True.

6.    Compile the Workflow Policy Program.

7.    Login into application

8.    Identify the Custom Workflow component which would be used to execute the Workflow and get its Alias name.

9.    Navigate to Administration – Business Process screen.

10. Go to Workflow Policy Actions View and create a new Action, whose program is Run Workflow Process

11. Add Argument for the Action. Here two Arguments are seen. One is ProcessName which defines which Workflow Process to be executed and the other is Action Type which would be defaulted with “WfprocMgr” (Alias for vanilla Workflow Process Manager component), change this to the Custom Component’s Alias.

12. Add the created Action to the Policy

13. Drop and Regenerate the triggers.

Alerts Through Customer/Partner Portal

1. Add Alerts Applet to the Home Page using Siebel Tools

2. Go to Sitemap -> Administration - Alert

3. Go to "Alerts"

4. Create new alert (New button, then fill in required info)

5. Click through on new alert

6. Add any literature or product info as desired in first 2 tabs in bottom applet

7. Click on 3rd tab in bottom applet: Recipients

8. Select Recipient Position or Division (Recipient search can be by USER ID, so add current user)

(For example, if you want the alert to appear when SADMIN logs in then add SADMIN to the list)

Pages

Subscribe to Siebel EAI