Search This Blog

SBL-EAI-04446: Invalid input variant type '%1', expected '%2'

Applies to: Error Message Area:Application Integration Infrastructure, Enterprise Application Interfaces - EAI
Version:Siebel 8.1
PurposeThis document is intended to provide cause and corrective action information about Siebel Error Message SBL-EAI-04446: Invalid input variant type '%1', expected '%2'.
ScopeThis document is informational and intended for any user.
SBL-EAI-04446: Invalid input variant type '%1', expected '%2'.ExplanationThe Transcode business service accepts variant inputs of the following types: memblock and string.
Corrective ActionCheck the input parameters of the Transcode business service.














Applies to:
Siebel CRM Call Center - Version: 8.1.1 SIA [21111] and later [Release: V8 and later ]
Information in this document applies to any platform.
SymptomsWhen using Transcode BS via eScript it may fail with error: "Application Error : Invalid input variant type 'UnsupportedType', expected 'String'.(SBL-EAI-04446)".

It happens when a message larger than 25K is received from a transport adapter such as "EAI File Transport" and passed directly to the Transcode Service BS via eScript using StringToEncoding mode.

Example of code that returns this error:
var ps1 = TheApplication().NewPropertySet();
var ps2 = TheApplication().NewPropertySet();

var xmlTransCode = TheApplication().GetService("Transcode Service");
var bsreadmsg = TheApplication().GetService("EAI File Transport");
ps1.SetProperty("FileName","c:\\temp\\BigEntry.txt");
ps1.SetProperty("CharSetConversion","UTF-8");
bsreadmsg.InvokeMethod("Receive", ps1,ps2);

ps2.SetProperty("ConversionMode","StringToEncoding");
ps2.SetProperty("TargetEncoding","UTF-8");
xmlTransCode.InvokeMethod("Convert", ps2, Outputs);

CauseIf the message received from the transport adapter is big and sent directly to the Transcode Service, the <Value> attribute is not recognized as a String and then it fails.

CR 10587735 was created to address this behavior in future versions of Siebel.





Solution
In order to make it work using eScript, pass the message through a String variable.

Ex:
var ps1 = TheApplication().NewPropertySet();
var ps2 = TheApplication().NewPropertySet();
var ps3 = TheApplication().NewPropertySet();

var xmlTransCode = TheApplication().GetService("Transcode Service");
var bsreadmsg = TheApplication().GetService("EAI File Transport");
ps1.SetProperty("FileName","c:\\temp\\BigEntry.txt");
ps1.SetProperty("CharSetConversion","UTF-8");
bsreadmsg.InvokeMethod("Receive", ps1,ps2);

var v_str = ps2.GetValue();

ps3.SetValue(v_str);
ps3.SetProperty("ConversionMode","StringToEncoding");
ps3.SetProperty("TargetEncoding","UTF-8");
xmlTransCode.InvokeMethod("Convert", ps3, Outputs);

Also the CR 10587735 was created to address this behavior.
ReferencesNOTE:830087.1 - SBL-EAI-04446: Invalid input variant type '%1', expected '%2'.

Related


Products


Siebel > Customer Relationship Management > CRM - Enterprise Edition > Siebel System Software

No comments:

Post a Comment