Search This Blog

SBL-BPR-00108: Process property '%3' contains data that cannot be passed to input argument '%2' in step '%1'. Data type: '%4';

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2.2 [18356] SVE Retail
Database: Oracle 9.2.0.2
Application Server OS: Microsoft Windows 2000 Advanced Server SP 4
Database Server OS: Sun Solaris 5.8

This document was previously published as Siebel SR 38-2416624071.

Symptoms

Dear Support,
We are interfacing inbound messages from an IBM MqSeries queue.
A Receiver component is set up to listen to that queue, and points to a data handler subsystem which has the following parameters:
-Converter Service: EAI XML Converter
-Service Method to Execute: XMLDocToIntObjHier
-Dispatch Service Rule Set: UL30 LANG BASED INBOUND DISPATCH

The dispatcher rule set is used to extract the "Language" attribute from the Siebel message header, and pass the XML doc to a workflow, running that workflow in the correct language context.
A rule looks like this:
-Search Expression: /*/SiebelMessage@Language
-Property value: SVE   (one of our languages)
-Dispatch Service : Workflow Process Manager
-Dispatch method : Execute Process

Then the transforms section has the following:
Target                  Source expression                   Property Name
RootHierarchy      /*
Property               "SVE"                                        Language Code (also tried "Lang")
Property               "UL30 Generic Inbound Workflow" Process Name

The import runs fine, only the language used is always ENU. It is only the ENU srf which is used, and I don't understand why.

Please advise.
Thanks

Solution

Message 1

For the benefit of other users, messages containing different languages were being posted onto a MQ Series queue. Each message included an attribute that specified the language of the incoming data. The queue was monitored by a MQSeries Server Receiver with Language Code set to ENU that dispatched to a workflow. The requirement is to make sure that, for example, the workflow did not fail if the message included Swedish picklist values rather than English values.

A possible solution was to create for each additional language a copy of the MQSeries Server Receiver that used the siebel.srf for that language. As part of this you would have to create a separate queue for each language because if you have one queue any of the Receiver’s could pick up a message.

The customer met their requirement by creating, for each additional language, a copy of the Workflow Process Manager that used the siebel.srf for that language. The workflow executed by the MQSeries Server Receiver was configured to check the value assigned to the "Language" attribute in the SiebelMessage header, submit a request to the corresponding Workflow Process Manager and pass the SiebelMessage to it.

A consideration here was how to submit a server request from one workflow process to invoke another workflow process and pass an XML message from one to another. This functionality was implemented as follows:

[Continued]

Message 2

[Continued]

1. Create a workflow process that is invoked using the Server Requests business service and specify the following process properties:

Name, Data Type
IncomingXMLBinary, Binary
IncomingXMLString, String

2. Add a Business Service step and define it as follows:

Business Service: Transcode Service
Method: Convert

Input Arguments:

Input Argument, Type, Value, Property Name
Input/Output Value, Process Property, , IncomingXMLString
Conversion Mode, Literal, StringToEncoding
Target Encoding, Literal, UTF-8

Output Arguments:

Property Name, Type, Output Argument
IncomingXMLBinary, Output Argument, Input/Output Value

3. Add steps to convert IncomingXMLBinary into a SiebelMessage and call the EAI Siebel Adpater.

4. Create a workflow process that is executed by the MQSeries Server Receiver and specify the following process properties:

Name, Data Type, Default String
<Value>, Binary,
IncomingXMLBinary, Binary, <Value>
IncomingXMLString, String

5. Add a Business Service step and define it as follows:

Business Service: Transcode Service
Method: Convert

Input Arguments:

Input Argument, Type, Value, Property Name
Input/Output Value, Process Property, , IncomingXMLBinary
Conversion Mode, Literal, EncodingToString
Source Encoding, Literal, UTF-8

Output Arguments:

Property Name, Type, Output Argument
IncomingXMLString, Output Argument, Input/Output Value

[Continued]

Message 3

[Continued]

6. Add a Business Service step and define it as follows:

Business Service: Server Requests
Method: Submit Request

Input Arguments:

Input Argument, Type, Value, Property Name
Component, Literal, WfProcMgr
Method, Literal, RunProcess
Mode, Literal, DirectDb
WfProcMgr.IncomingXMLString, Process Property, , IncomingXMLString
WfProcMgr.ProcessName, Literal, <Name of workflow created in step 1>

The incoming binary value is converted into a string. This is because when I tried to pass the binary value to the Server Requests business service it failed with the following error:

'IncomingXML' contains data that cannot be passed to input argument 'WfProcMgr.IncomingXML' in step 'Server Requests'. Data type: 'MEMBLOCK'; String representation of data body: '<?xml version="1.0" encoding="UTF-8"?><?'.(SBL-BPR-00108)

- Siebel Technical Support

Keywords: MQSeries Server Receiver Message Language Attribute English Swedish Workflow Process Manager Server Requests


No comments:

Post a Comment