Showing posts with label JSON. Show all posts
Showing posts with label JSON. Show all posts

June 03, 2016

[Download] EAI JSON Converter v2

Pleased to bring you the complete EAI JSON Converter v2. It happened a lot sooner than I expected.
Siebel EAI JSON Converter

Below is the code which converts JSON string to property set. The heart of the code is eval statement, which converts the JSON string into eScript Object. 
Siebel eval statement

Remaining code is just the recursive traversing to convert object into property set. I have tested the code for couple JSON strings, it passed everytime with flying colours every time. Feel free to change the code as required. 

You can download the complete sif from git hub. https://github.com/Jimjson/eScript-based-EAI-JSON-Converter-


EAI JSON Converter Demo: 

June 01, 2016

EAI JSON Converter - v2 (No Java)

I published EAI JSON Converter business service based on Siebel Java business service back in 2013, and many people seemed to like it and implemented it. See the old post here. It was great to see that code getting implemented in production by many people. Surprisingly equal number of people faced difficulty in implementing the Java business service which is required to get EAI JSON Converter working.

Thus I started working towards removing dependency on JAVA business service and created complete eScript based solution as ver2 of EAI JSON Converter business service.
Generate JSON in Siebel without Java


This service will have the same methods and arguments, and will outputs similar JSON string and property set as previous version did but without the need of JDK. It is complete plug and play service, just copy paste the code and start using the service.

function CreateJSON(Inputs){
/*********
Created By: Jim
Support: http://howtosiebel.blogspot.com
*********/
    var str,j;
    var propName = "";
    var propVal = "";
   
    str = "{";
   
    propName = Inputs.GetFirstProperty();   
   
    //Type and value
    if(Inputs.GetValue() != null && Inputs.GetValue() != ""){
        str = str + '"' + Inputs.GetType()  + '"' + ":"  + '"' + Inputs.GetValue() + '"';   
        if(propName != "") str= str + ",";
    }
   
   
    //Properties
    while (propName != "") {
        propVal = Inputs.GetProperty(propName);
        str = str + '"' + propName +  '"' + ":" + '"' +propVal + '"';
        propName = Inputs.GetNextProperty();
        if(propName != "") str = str + ",";
       
    }
    propName = Inputs.GetFirstProperty();
    if(propName != "" && Inputs.GetChildCount()> 0)str = str + ",";
   
    //Loop for child
    if(Inputs.GetChildCount()> 0){
    if(Inputs.GetChildCount()> 1)str = str + '"Object"' + ":" + "{";
    for (var i = 0; i < Inputs.GetChildCount(); i++){
            j = Inputs.GetChild(i);
            str = str + '"' + j.GetType() + i + '"' + ":" + CreateJSON(j);// + ",";
            if(i+1<Inputs.GetChildCount()) str =str + ",";
    }
    if(Inputs.GetChildCount()> 1)str = str + "}";
    }
    str = str + "}";
    return str;   
}
Hope the code is self explanatory. Feel free to edit it for your implementation. I have tested the output and validated for RFC4627.

Creating JSON string from property set was easy I traversed through the property set using out of the box Siebel methods and created the string. Creating propset from JSON proved difficult, I am still working on solution for interpreting JSON and converting it into property set, I have made some progress will post it as soon as it is working satisfactorily.

If you want to contribute in nobel cause then contact me via comments below and don't forget to plus one this post on Google. All comments are welcome.

January 24, 2014

Siebel Twitter Integration - Overview


What is Siebel?

Siebel is Oracle's CRM(Customer Relationship Management) product suite, which offer to manage customer relationships through various touchpoints. Siebel suite is designed mostly for all industry verticals and horizontals, and help business to manage customer data, order information, partner information, sales force automation, customer self service and many more customer interactions.

With its powerful integration capabilities Siebel can interact with other enterprise systems (like billing, back office systesms) on many protocols(like MQ Series, JMS, HTTP, Webservices, database connections, COM, Java, DLL and more..).


What is Twitter?

Does anybody need introduction? Twitter is first and biggest microblogging platform having billions of users accross the world. Some features like verified accounts, hash tagging and trending has made it one of the biggest social network platform.

User can vent their spleen out to the world lietrally about any topic and can follow any user or topic accross the world. From couple of years people have started venting about the poor customer service and problems on twitter. Business are forced to act on the complaints and provide response to keep the brand image. Recently angry customer's tweet about his lost baggage forced British airways to conduct a massive search operation, and helped passenger to get his lost baggage.

Does Siebel Provides Out of the box way to integrate with twitter? No!
Siebel recommends a third party product Buzzinet to handle the twiiter interaction and provide processed information back to Siebel. Which is a very tacttical solution and provides some benefits too. Thus it comes with premium licensing cost and service agreement.

Siebel Twitter Integration

In this series we will discuss a solution which can be implemented to integrate Siebel with twitter without the need of any another enterprise application or middleware.
Twitter only support REST API 1.1 for integration with other applications, current Twiiter API only accepts and provide response in JSON strings. That does not mean Siebel can not integrate Twitter. By using Java based EAI JSON Converter Siebel can create JSON strings and convert back string to data. Follow these links to understand more about EAI JSON Converter..

Twitter REST API v1.1 (@twitterapi) have three major ways of pulling and posting tweets into the cloud.

1. O-Auth User authentication


This method is used by mobile application and third party websites to allows users to acccess twiter features without leaving their environment.

2. Applicaton Only authentication


This type of authentication allows application to execute search queries on twitter and follow topics. With this type of authentication Twitter provides little more generous rate limits for querying twitter, and are best suited for CRM applications.

3. Streaming API


This is firehose of twitter tweets, and it streams live tweets to the applcation using long lived open HTTP connections. This feature should only be implemented if some serious research of user analytics need to be performed.


For the purpose of this series we will demonstrate a solutions which will help organizations having, to follow topics on twitter and post replies to the tweets all by using Siebel on premise application.



Later in this series:
 Stay tuned for coming up posts.

December 14, 2013

EAI JSON Converter


Siebel does not provide any out of the box functionality to convert Siebel data into JSON string or vice versa. Developers end up with string manipulations or giving up on integration. I have created custom EAI JSON Converter business service which uses Java capabilities and Siebel-Java integration EAI Java Business Service to produce fully compliant JSON strings and convert the external JSON into Siebel Property Sets.

The service built on the lines of methods of EAI XML Converter which converts Property set to XML Doc and XML Doc to property set.
Methods available in EAI JSON Converter are:

  1. JSONToPropSet
  2. PropSetToJSON


Input data to this service is sent to EAIJSONConvert java class using Siebel API(Siebel.jar) which converts the data in required format using GSON 2.2.4 Java API . The Gson library was originally developed for internal purposes of Google, and Version 1.0 was later released on May 22, 2008 under the terms of Apache License 2.0. The latest version, 2.2.4, is used for the service.

How to set up:

1. Download and place java files in the CLASSES folder of Siebel Client the binaries 
Files:
EAIJsonConverter.class
gson-2.2.4.jar
Siebel.jar

2. Download the sif file for EAI JSON Converter from github
3. Update the cfg file to include gson-2.2.4.jar file. My cfg file look like:
[JAVA]
DLL = C:\Program Files\java\jre6\bin\client\jvm.dll
CLASSPATH = C:\Siebel\8.1\Tools_1\CLASSES\Siebel.jar;C:\Siebel\8.1\Tools_1\CLASSES\SiebelJI_enu.jar;C:\Siebel\8.1\Tools_1\CLASSES\gson-2.2.4.jar;C:\Siebel\8.1\Tools_1\CLASSES\.
VMOPTIONS = -Xrs -Djava.compiler=NONE -Djms.log=C:\logs\

4. Simulate the service

How to use:

Service can simply be used in place of EAI XML converter to convert the Siebel message into JSON or convert back JSON to property set.




Please feel free to use comments for any questions or to post any difficulty faced in using the service.

Hope it helps.

-Jim