Friday 17 April 2020

Creating a Attachment Record in Siebel

Hello All,

Recently i had a requirement wherein ,
  •  I had to Create Generate a BIP report
  •  Attach BIP on a Particular Order
  •  Send the Attached BIP to external System

Taking the 2nd part, Attaching BIP to a Order, or Simply Creating a attachment record in Order.

This can be achieved very Easily with ,

Business Service Name: FINS Industry BC Facility Service
Busienss Service Method: CreateFile

but, FINS Industry BC Facility Service can create attachments and attach in Related attachment BC but user has to be in current context of Application i.e. The process need to be initiated from Siebel application by user.
For any process that is called via a web service this BS won't work

So to create attachment, we have to use CreateFile method of the corresponding Attachment BC.
Below code can be used,

var OrderBO = TheApplication().GetBusObject("Order Entry"); 
var OrderAttachBC = OrderBO.GetBusComp("Order Entry Attachment"); 
var AttachmentName = "Attachment";//Name of Attachment 
var OrderId = Inputs.GetProperty("RecordId"); //RowId of Order 
var sAbsoluteFileName = Inputs.GetProperty("FilePath");//Path of file that will be added as attachment 

NewRecord(NewAfter); SetFieldValue("OrderFileName", AttachmentName ); 
SetFieldValue("Order Id",OrderId); SetFieldValue("OrderFileDeferFlg", "R"); SetFieldValue("OrderFileDockReqFlg", "N"); 
SetFieldValue("OrderFileDockStatFlg", "E"); 
SetFieldValue("OrderFileSrcType", "FILE"); 
SetFieldValue("OrderFileExt", "PDF"); 

var sGetFileReturn = InvokeMethod("CreateFile", sAbsoluteFileName, "OrderFileName", "Y"); WriteRecord(); 

Hope this was helpful.

Working With Attachments in Siebel IO's

Hello All,

Recently I had a requirement wherein, i was required to share the attachment with Order over WebService.

This seems a bit tricky, but siebel has made it Possible via the IO based structure. We have to use IO that has the attachment IC and when we retrieve the Hierarchy of the IO, we can see the output of attachment IC and it is in MIME format encode with BASE64 encoding.

Now the target system has to read the file buffer and decode using any online Decoder or write a custom decoder.

Sample Structure looks like ,

More details can be found in bookshelf link ,

Siebel Data Maps : Making Integration Easy

Hello All,

let us explore the Use of Integration Data Maps in this Post.

Integration data maps make it possible to map two IO's i.e. enables to pass fields value from one IO to other, irrespective of the level of Hierarchy.

Recently I had a requirement wherein i had to Update Users Opt In Preference for Receiving Emails and capture date of this activity, also there were multiple contacts with same mobile numbers.

This can be achieved Via multiple ways .

1. From the view of a Developer relatively new to Siebel , 

  • Create a BS 
  • Search for the contact with the given Input
  • Loop through it, and Update the records

2. From the view of a Senior Developer,

  • Create a Workflow 
  • Search for Record using Siebel Operation, Find Record 
  • Use Looping via Next Record Method
  • Update the Record

3. From the view of Siebel Integration Developer

  • Create a Workflow
  • Create a IO/Use Existing IO based on Contact
  • Search Using EAI Siebel Adapter
  • Use Data map with Same Source and Destination IO, and Provide the value in Destination IO
  • Get the Output of Data Mapping , and Upset using EAI Siebel Adapter 

I used the 3rd Approach and sample Workflow Looked like,

To call data map we need to Use

BS: EAI Data Transformation
Method: Execute

Map Name: Name of Data Map
SiebelMessage: The Hierarchy from EAI Siebel Adapter

if we need to pass any Values from Workflow like Process Properties or Literal Values to Data Map we can pass these by Defing those in Input
and can be used in Data Map with and & symbol i.e. [&ProcessPropertyName]

Siebel GoTo View - Handling Realtime cases

 Hello All,  We all must have used GoTo view functionality of siebel to navigate to a particular view from current view. What if the require...