You are here

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.
AttachmentSize
FileWork Flow AND GeoAccess.xml0 bytes
Binary DataGeoAccess.sif0 bytes