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()
Siebel EAI
Is it possible to add a searchspec to a child integration component when querying with EAI Siebel Adapter? | ||||||||||||
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 TransportBefore 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:
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
[JAVA]
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.propertiesThe 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:
java.naming.factory.initial=oracle.j2ee.naming.ApplicationClientInitialContextFactory 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 :- NOTE HERE:
import java.util.Hashtable; 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
| ||||||||||||
How To Pass the Output of EAI Siebel Adapter Query Method in a Custom Business Service Published as an Inbound Web Service ? Steps:
Publishing Inbound Web Services // receiving an IO as input to the web service adpBS.InvokeMethod("Query",Inputs,psQueryOutput); // (Doc ID 476560.1) // goes down the propertyset till you find the IO you are looking for. MyIOOutput.AddChild(psQueryOutput.GetChild(0).GetChild(0)); // set the output of your custom BS
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. | ||||||||||||
Steps to Create VBC 1. Create a new BC based on the Class CSSBCVExtern. | ||||||||||||
EAI Interview Questions and Answers - Test 1 Total No. of Questions: 20 Time Duration : 30 Minutes Answers are highlighted in Bold Green.
| ||||||||||||
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:
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:
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) |