רשומות

מוצגים פוסטים עם התווית EAI

User Keys & Blind Insert

If ignorance is bliss, why aren't there more happy developers? Recently I found something strange in our inbound integration. For Upsert scenario we received XML data in all Upper Case format. Despite having CaseInsensitive setting set to TRUE for EAI Object Manager the integration was failing. It was because of the fact that user keys are always case sensitive irrespective of setting at OM level. As a workaround for this we can either use "Force Case" field property at BC level or we can have numeric user keys.  Another interesting user property we came across insert unique-user-key scenario is "SuppressQueryOnInsert" at IC level to do blind insert. This is real performance boost in scenarios when you are sure incoming user keys will always be unique. Without this user property Siebel first generates SELECT statement which queries for the record with given user key across the table. This user property helps in suppressing this SELECT stateme...

Understanding EAI Transaction Service

Recently I got the chance to work on a EAI requirement which requires the use of business service: "EAI Transaction Service" This post might help you if you are hearing this business service for the first time. First of all, let me tell you what was the requirement for which I used this business service and later will tell you how it works. Requirement We have integration between a

Session Management WebServices

This post is for one who has been bamboozled by below interview question. Question : "Can we have dynamic users for Created By/Updated By fields during upsert operations instead of SADMIN in siebel inbound webservices using standard authentication mechanism? " Soln:  Yes we can, provided we are running a version 8.0.0.4 or higher. Stateless session management siebel authorization is key here in the inbound services. Below setup is required in order to make this thing work. 1 - SessionAccessService and SiebelUserProfileService - These two webservices should be active and point to correct object manager. They should use sesssion management(i.e WSSOAP = 1) mode. The authentication type for all the methods should be set to None. 2 - Import wsdl and Consume SessionAccessService WS. Make a call to SessionAccess service and obtain the session token for a new Siebel User Session. For this PING method is used. The SessionToken value from the response message represents t...

How to send email containing multiple child records data?

I am pretty sure you will find this post very interesting, if you ever get a requirement to send a email in HTML format and email should have the details of the child records(dynamic data) as well.XSLT (XSL Transformation) can do wonders for this kind of requirement where the basic idea is to get data in XML hierarchy from Siebel (which you can easily do via EAI Siebel Adapter and convert it into

Removal of Null Tags

A lot has been said and written about removing null tags in xml messages. Any integration ace will always suggest to go for XSLT to transform XML while an siebel eScript enthusiast will defend stating business service will be ideal way to achieve this. But a laggard like me is always in search of solution which is easier to implement and flexible enough to handle frequent changes. After peppering siebel forums one of my friend came up with devilicious idea of using the data mappers itself to remove the null tags. As per siebel booskshelf: " The Integration Component Fields list displays the list of fields for that component. Note the system fields Conflict Id, Created, Id, Mod Id, Updated, operation, and searchspec in the list. This setting prevents the EAI Siebel Adapter Query and QueryPage method from outputting these fields." It says that system fields are not the part of output XML. Any integration field of type "System" is not included in the ouput siebel messa...

"Siebel-Authored" flag in Data Map

Lot of things in siebel are still not documented. Talk about those magical user properties or custom classes with super natural powers, most of them needs to be discovered by trial only. Recently while working on the Siebel ASI, my eyes started gleaming when i saw "Siebel-Authored" flag in Data Map editor screen. My initial hollow guess was this flag might be used by siebel to identify predefault data mappers which are used by ASI. But after checking in sample i confronted that this flag was blank for all records. Out of curiosity i started searching for usage of this flag but was not able to hunt down much. Please feel free to add comment in case you have any clue about this flag. Happy Cracking!!

Hierarchy Extraction ++

תמונה
This is an extension to my previous post regarding Hierarchy Extraction which compares different ways to extract property sets. I have quoted in the earlier post regarding the length limitation(75 characters) of Workflow Utilities echo method using dot notation. But Siebel never run out of altervatives and each one gives me something different. In order to overcome the length limitation of the dot notation one can make use of "Aliases" which lasts upto 255 characters. Workflow Processes can have Process Properties of type "Alias" (ignorant me). Basically this data type acts as a pointer to a specific attribute inside a Property Set. So in order to fetch Sr Number or Account Id, mentioned in previous post, we have to define two process properties of data type "Alias" with Default value as below SR Number: SiebelMessage/ListOfService/Service Request/@SR Number Activity Id: SiebelMessage/ListOfService/Service Request/ListOfAction/Action/@Activity Id In the w...

Access control with EAI Siebel Adapter

User properties in siebel are as thrilling as gadgets in bond movie. Yes, we can define visibility view modes at integration object level. "ViewMode" user property defined at IC level does the magic. This user property can take different values, as defined by LOV type " REPOSITORY_BC_VIEWMODE_TYPE" . However,as i keep saying the beauty of siebel is the flexibility it provides. One can even use "ViewMode" input argument in the Query/Query Page methods of " EAI Siebel Adapter " business service. However this argument is not exposed in the tools but one can use it. We can see presence of this argument in Query method of another business service " XMLP Siebel Adapter ", which is used in the BIP reporting. This BS can also be used to extract the siebel message. Happy Crunching!!

Hierarchy Extraction

תמונה
Blue is the color of champions and so is the color of siebel. After a month of ups and down services return to normal as cup is brought home,so as me. Time to talk some business now. There are numerous instances in the integration where extracting a hierarchy or reading a property set is required. This could be accomplished in multiple ways. Here we will discuss the plus and minus of different services which can be utilized to perform desired task. Lets consider an Integration Object with a simple hierarchy with Service Request being parent and Activity being child. Our main aim is to extract SR Number and Activity Id in the hierarchy. Potentially there could be multiple ways to extract property set but here we will discuss most commonly used business services. 1 - Workflow Utilities (My favourite) - This is one of the most powerful business service given by siebel and can do wonders. After using in n number of scenarios still i am not sure what all things this gem can do. "Echo...

Inbound Web Services

Web Services is one of the illusive part of siebel CRM. A lot has already been written about web services but for this category more is always less. This post is not about how to create inbound web service but to help you decide how to use them based on different scenarios. Siebel makes use of UserName token mechanism for authentication and security. Based on the requirement following options are supported while implementing an inbound web service: 1 - The basic implemenation allows the userid and password to be included in the url of webservice. This can be opted when security is not of much importance.Following is an example of passing the user name and password by way of a URL: http:// /eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&Username=SADMIN&Password=SADMIN If you look at the "WebService" named subsystem it will have following parameters: AllowAnonymous = False Impersonate = FALSE Along with this, make sure the operations have the Authentic...

Generating unique numbers in DataMap

Sometimes data coming in inbound integration from external system cannot be uniquely identified.Similar scenario struck me and was forced to generate unique number at siebel side. One of the option was to parse incoming XML and add unique identifier using Scripting or XSL. Another option was to use "SIS OM PC Service" business service in datamaps and the generated output row_id could be used as user key during the insertion. In the field map following expression is used: InvokeServiceMethod("SIS OM PC Service", "Get Next RowId","Test='123'" ,"RowId") However the enigma was not ended here. Further twist was error "Access denied to invoke business service 'SIS OM PC Service' for search specification 'InvokeServiceMethod("SIS OM PC Service", "Get Next RowId","Test='123'" ,"RowId")'" . After some hunting on the support web i realised this security issue. In or...

How to create Inbound Web Service in Siebel?

In the last post, we talked about creating an Outbound Web Service in Siebel where we receives the WSDL file from other system and consume it into Siebel Tools to generate necessary artifacts. Today I found a very nice tutorial for creating an Inbound Web Service in Siebel. In this post you will find how to publish the WSDL from Siebel and let the outside world do data manipulation inside

How to create Outbound Web Service in Siebel?

Today, lets talk about how we can invoke an Outbound Web Service from Siebel. In the last post we learned how to test the WSDL using SOAPUI and I will use the same WSDL today (CurrencyConverter.wsdl) as the sample wsdl in this post.1. Import the WSDL into Siebel Tools.Create New Object. File Menu -> New Object -> EAI -> Web ServiceSelect the WSDL file pathBusiness Service will get created with

How to test a WSDL if it is working or not?

No matter if you are working in Siebel or not, if you are going to implement any Outbound Web Service, the first thing you wanna check if the WSDL file received from the 3rd party is working or not before you actually consume it and start the development.Same is the case with Siebel Tools, you require to consume it in Siebel tools which will result in creation of Web Service (which is nothing but

Error in Inbound Integration !!

Generally whenever you create a new Inbound Integration in Siebel, its a recommended practice that you get a new Database login created for it and that you can share with the other system for which you have created this inbound integration. I did the same thing, requested for a new DB login from our DBA and got it created. Before handing over to other party for use, I tried testing this newly