Sie sind auf Seite 1von 24

Last Updated: October 3, 2008

Oracle B2B Technical Tips Page 1





1echnical 1ips

OracIe B2B


IdentiIication........................................................................................................................................ 2
Inbound: Partner to Oracle B2B ...................................................................................................... 2
Outbound: Internal to Oracle B2B................................................................................................... 3
Overriding the From/To Trading Partner with an IdentiIier............................................................ 3
Accepting HTTP posts Irom multiple Partners w/o a unique Agreement ....................................... 4
Oracle ESB: Setting and retrieving Header InIormation ................................................................. 4
IdentiIication Partners & Document: File , FTP (Patch 6800745 & 7322333) ....................................... 5
ebMS: Transaction Set IdentiIication (Patch 7322333) ....................................................................... 6
Applicability Statement 2 (AS2) Iile name preservation................................................................. 6
General................................................................................................................................................. 7
Messaging Service Acknowledgement ............................................................................................ 7
Functional Acknowledgements........................................................................................................ 7
Retry Count & Time to Acknowledge............................................................................................. 7
Internal delivery channel in a RAC environment ............................................................................ 7
Namespaces generated by the Oracle B2B Document Editor ......................................................... 8
Load balancing................................................................................................................................. 8
Migration Irom Test to Production .................................................................................................. 8
Adjusting preload statements in opmn.xml ..................................................................................... 9
HA Parameter................................................................................................................................... 9
Reading large Iiles (Receiver Iile minimum age) ............................................................................ 9
Partner Facing AQ / JMS (Patch 6800745)........................................................................................ 11
Partner Facing JAVA callouts (Patch 6800745) ................................................................................ 12
HTTP Sync , Form Post , Transport Retires , Authentication............................................................ 14
Electronic Data Interchange (EDI) .................................................................................................... 15
Required tags Ior the EDI XML delivered to Oracle B2B............................................................ 15
Macros available to generate segment Counts & Control # .......................................................... 15
Overriding outbound Envelope: ISA/UNB, GS/UNG, ST/UNH.................................................. 16
Using one Trading Partner to exchange transaction sets with a VAN........................................... 19
Count based batching..................................................................................................................... 20
Removing extraneous characters Irom EDI native Iiles ................................................................ 20
Health Level Seven (HL7) ................................................................................................................. 21
Using one Trading Partner to broadcast to multiple recipients...................................................... 21
Required tags Ior the HL7 XML delivered to Oracle B2B............................................................ 21
RosettaNet.......................................................................................................................................... 22
DTD to XSD conversation Ior RosettaNet .................................................................................... 22
PerIormance ....................................................................................................................................... 23
Tuning parameters: tip.properties (Patch 7322333) ........................................................................... 23
Tuning parameters: tip.properties .................................................................................................. 23



Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 2
Identification
Whether a transaction set is received from an internal system or a Trading Partner, Oracle B2B
must identity the associated Agreement. This is accomplished by first identify the Trading
Partner and then the transaction set. This combination is then used to identify the agreement.
Inbound: Partner to Oracle B2B
The methods of identify the Trading Partner and the transactions set vary between protocols,
transport and exchanges.

Trading Partner Identification
Each protocol has its own Trading Partner identification

Transports Method
HTTP Generic Identifier (IP Address)
SMTP Mail box
FTP Directory Name
File Prefix
Transport Parameters
MLLP MLLP ID (IP Address or machine name)
Exchanges
RNIF DUNs Number
ebMS ebMS Identifier
AS1 AS1 Identifier
AS2 AS2 Identifier
Standards (Optional to above (Transport /exchange)
EDI Interchange Sender ID (ISA 06) or
Application's Sender Code (GS 02)
HL7 Sending Application (MSH 00003) or
Sending Facility (MSH 00004)

Transaction Set Identification
Protocol Identification Method
HTTP
SMTP
FTP
MLLP
AS1, AS2
Document Type
Document Type Revision
xPath into payload
Positional into payload
Transport Parameters
Exchanges
ebMS Document Type
Document Type Revision
ebMS parameter (From Party, To Party, Service, Service Name, Action Name
Action Name = Business Action
Standards
HL7 & EDI Document Type
Document Type Revision

Trading Partner Agreement Identification
The Agreement is identified by the combination of Transaction Set and Trading Partner.
ebMS has an addition parameter

Exchange Method
ebMS ebMS CPA_ID = Agreement ID

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 3
Outbound: Internal to Oracle B2B
Prior to submitting the transaction set to the Oracle B2B internal delivery channel the
IP_MESSAGE_TYPE header must be set. This information enables Oracle B2B to identify the
correct Agreement

Field Description
MSG_ID A unique identification for the message.
INREPLYTO_MSG_ID The MSG_ID received when responding to a previous message.
Assigned to Null if the middleware is initiated the message
Assigned to the MSG_ID when in response to previous message
FROM_PARTY The Trading Partner who is sending the message.
TO_PARTY The Trading Partner who is to receive the message
ACTION_NAME The Business Action
DOCTYPE_NAME The Document Type defined in B2B ex: "850
DOCTYPE_REVISION The Document Revision defined in B2B ex: "4010
MSG_TYPE Assigned to 1 or 2 or for base on message type
1 REQUEST
2 RESPONSE
PAYLOAD
ATTACHMENT
Overriding the From/To Trading Partner with an Identifier
Prior to submitting the transaction set to the Oracle B2B internal delivery channel, set the
FROM_PARTY and/or TO_PARTY in the IP_MESSAGE TYPE:

Example: FROM_PARTY: AS2 Identifier:987654321
TO_PARTY: AS2 Identifier:123456789

IP_MESSAGE_TYPE
Parameter Value
MSG_ID 987654321
FROM_PARTY AS2 Identifier:987654321
TO_PARTY AS2 Identifier:123456789
DOCTYPE_NAME 850
DOCTYPE_REVISION 4010
ACTION_NAME


Syntax:
Parameter Value
idtype Identification type defined in Oracle B2B
Value Value for that identifier

Note:
The Trading Partner Identification must exist in Oracle B2B.
The separator is ":
This will override the Trading Partner name for this transaction set.
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 4
Accepting HTTP posts from multiple Partners w/o a unique Agreement
When using "Custom over Generic, the "Generic Identifier (IP address) identifies the Remote
Trading Partner. The steps to identify multiple Partners without a unique identifier can be
achieve using a mask.

MASK: The IP address has four sets of numbers separate by periods. A mask can be created
with the following syntax:

Mask
1.2.3.4 Match
1.2.3.* Matches 1
st
3 numbers
1.2.*.* Matches 1
st
2numbers
1.*.*.* Matches 1
st
1numbers
*.*.*.* Invalid

The Trading Partner can have multiple generic identifiers

Steps:
Step Value
Create a Generic Partner Generic_TP
Create generic Identifier(s) *.*.*.*
Create a Agreement Host_Generic_Agr

Note:
Take care in defining the mask since you can have overlap with the wildcards
The sequence to identify an agreement is: Partner, Document, Agreement
This step addresses the Trading Partner identification step only.

Oracle ESB: Setting / Retrieving Header Information (IP_MESSAGE_TYPE)
Inbound:
Header information can be retrieve and used to route inbound documents bases on the values.
Example:

{ehdr:getRequestHeader
('/hdr:Header/hdr:PayloadHeader/DOCTYPE_NAME')='850'}; { namespace
ehdr=http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeader
Functions namespace phdr=http://xmlns.oracle.com/xdb/B2B/ namespace
hdr=http://xmlns.oracle.com/pcbpel/adapter/aq/B2B_ESB_In/ }

Outbound
Header information can be set in the XSLT map by creating a variable, local name, using an
expression to set the values. Example:

Local Name Expression
ehdr:setOutboundHeader
('/hdr:Header/hdr:PayloadHeader/MSG_ID'
, orcl:generate-guid(),
'hdr=http://xmlns.oracle.com/xdb/B2B;')"

Refer to Technical Note #028 for details:
http://www.oracle.com/technology/products/integration/b2b/pdf/B2B_TN_028_ESB_B2B_Interop.pdf


Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 5
Partners & Document Identification: File | FTP (Patch 6800745 & 7322333)
The following transport parameters have been introduced to increase the options for the
identification of the Partner and the Document. Note: Patch Set 7322333 enhanced these
features and enabled them for the internal delivery channels

Default behavior without these parameters:
Document Identification
Internal Delivery Channel: File naming convention
External Delivery Channel: xPath or positional
Partner identification
Internal Delivery Channel: file naming convention
External Delivery Channel: Filename prefix or directory name
Refer to tip.properties parameter
Oracle.tip.adapter.b2b.allTPInOneDirectory
New parameters
Directory name Format
Directory name Format Separator
Filename Format
Filename Format Separator

The format for these parameters can be constructed by using following constants:
%FROM_PARTY% Sending Trading Partner
%TO_PARTY% Receiving Trading Partner
%ACTIONNAME%
%CONVERSATION_ID%
%DOCTYPE_NAME%
%DOCTYPE_REVISION%
%FROM_PARTY%
%INREPLYTO_ID%
%MSG_ID%
%MSG_TYPE%
%SERVICE%
%TIMESTAMP%
Parameter Defaults:
Directory name format: Default value: EMPTY (Defined in URI)
Directory name format separator Default value: EMPTY
Filename Format
Internal Delivery Channel (Inbound / Outbound)
Default value: %TO_PARTY%_
%DOCTYPE_NAME%_
%DOCTYPE_REVISION%_
%MSG_TYPE%_
%MSG_ID%.dat
External Delivery Channel (Outbound):
Default value: %TO_PARTYt%_
%TIMESTAMP%.dat
Filename Format Separator: Default value: "_"
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 6
ebMS: Transaction Set Identification (Patch 7322333)
There are a number of methods to identify a transaction set received by Oracle B2B. Without
looking into the transaction set the default is: DOCTYPE_NAME + DOCTYPE_REVISION. With
the ebXML Messaging Service (ebMS) the transaction set can be identified by: ACTION_NAME
+ SERVICE.
Filename Format
Default value: DOCTYPE_NAME + DOCTYPE_REVISION
ebMS Option: ACTION_NAME + SERVICE

Applicability Statement 2 (AS2) Filename Preservation
EDIINT: AS1, AS2 and AS3 do not currently contain provisions for preservation of filenames.
Oracle B2B enables the method of filename preservation as defined in:

http://www.drummondgroup.com/pdfs/draft-ietf-ediint-filename-preservation-02.txt

Prior to submitting the transaction set to the Oracle B2B internal delivery channel, set the
ACTION_NAME in the IP_MESSAGE TYPE, with the filename.

Example: contentType:application/octet-stream;filename:myFile.xml

IP_MESSAGE_TYPE
Parameter Value
MSG_ID 987654321
FROM_PARTY Oracle
TO_PARTY Retex
DOCTYPE_NAME 850
DOCTYPE_REVISION 4010
ACTION_NAME contentType:application/octet-stream;filename:myFile.xml

Syntax:
Parameter Value
Constant contentType:application/octet-stream;filename:
Filename myFile.xml

This will set the filename in the Content-Disposition MIME header [RFC 2183] of the
AS2 Call.


Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 7
General
Messaging Service Acknowledgement
Exchange level acknowledgments (ebMS, AS1, AS2, RNIF) are managed by the
"Acknowledgment mode in the Delivery Channel
None: disabled
Sync / Async: enabled

Functional Acknowledgments, (EDI 997, EDI CNTRL, HL7 ACK), are managed under the
"Supported Business Actions
Functional acknowledgement required ?
Is acknowledgement handled by Integration B2B ?

Functional Acknowledgements
To manage the behavior of the Functional Acknowledgement (FA). The options are:
No FA required
Omit FA from Trading Partner Agreement
Set Functional Acknowledgment Required = False for both the Host &
Remote Trading Partners.
Oracle B2B consumes FA
Set Functional Acknowledgment Required = False for the Remote Trading
Partner 997 Initiator.
Oracle B2B passes the FA to the Internal Delivery Channel
Set Functional Acknowledgment Required = True for the Remote Trading
Partner 997 Initiator

Retry Count & Time to Acknowledge
"Retry Counts" applies to the transaction set
"Time to Acknowledge" applies only to the exchange level Acknowledgment not the
Functional.
Example: The AS2: Message Disposition Notification
The ebMS: Receipt Acknowledgment.
Functional Acknowledgments are treated as any other transaction set

Internal delivery channel in a RAC environment
The default Oracle AQ Delivery Channels are: automatically configured in the tip_properties. If
you create additional AQ Internal Delivery Channels then you must configure them to point to
a RAC environment.

Configure a tnsnames.ora entry with a service for the environment
Configure the Oracle B2B internal delivery channel
hostname Blank
port Blank
SID Service ex: orcl.us.oracle.com
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 8
Namespaces generated by the Oracle B2B Document Editor
Behavior:
Legacy:
Format: NS_<GUID>
Regenerated every time the "ecs file is opened
Current:
Format: urn:oracle:integration:b2b:<GUID>
Fixed with "ecs file

If you want the NS_<GUID> then you must select the "Use Legacy namespace option"
when exporting the XSD out of the Document Editor. WARNING: With this option every
time you edit the ecs file the namespace WILL change

Load balancing
Load balancing is achieved by:
Mid Tier
Install two B2B mid tiers and point them towards (1) repository
Configure mod_oc4j in the DMZ to point to the two & B2B mid tiers
Configure mod_proxy in the two B2B mid tiers to point to the Oracle HTTP
Server in the DMZ
DB Tier (If required)
Two databases (RAC)
Setup the tnsnames.ora for the two databases (If not using default queues)
Setup B2B for AQ connection (If not using default queues)

Migration from Test to Production
Methods to migration from test to production:

First Time i.e. clean repositories
Export entire repository from the Test System
Import metadata into the Production System

Subsequent migration
Export selected configuration from the Test System
Import metadata into the Production System

In either option, the minimum changes would be:
Update the delivery channels in the agreements
Configure digital certificates in the Oracle Wallet

Basic Step:
Export metadata from the Test System
Import metadata into the Production System
Update the delivery channel
Validated agreement(s)
Create / Deploy Configuration(s)

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 9
Adjusting preload statements in opmn.xml
DO NOT remove the xEngine PRELOAD statements in opmn.xml. This will cause the B2B
server to cycle while it attempts to connect to the xEngine. i.e. continuously restarting
($ORACLE_HOME/opmn/config/opmn.xml)

HA Parameter
In an HA environment you must set a parameter in each Oracle B2B instance tip.properties
configuration file:

oracle.tip.adapter.b2b.InHAMode = true | false

The first instance to start will be the only instance that reads the server.

Reading large files (Receiver file minimum age)
Receiver file minimum age
When the parameter Receiver file minimum age (in ms) has a value greater than zero, before
picking up the file for processing, B2B makes sure that the file has not been modified for that
time period. For this it makes use of LAST MODIFIED TIME of the file.

These parameters are required to compute/obtain last modified time for the file. The operation
system, format / time zone of the FTP Server maybe different then the B2B Server
receiver read ordered timestamp source
This specifies the FORMAT to get the timestamp.
LISTTIME - gives last modified time in format: 'MMM dd HH:mm',ucy
TIMESTAMP - gives last modified time in format: 'yyyyMMddHHmmss'

receiver read ordered timestamp format
This specifies information on how to parse the timestamp from the response string
obtained using the FTP command. It contains index information along with
timestamp format. Eaxmples:

[43,55,'MMM dd HH:mm',ucy]
This implies that in the response string from FTP Command, timestamp is
present between index 43 and 55.

[4,+14,'yyyyMMddHHmmss']
This implies that in the response string from FTP Command, timestamp is
present bewteen index 4 and index (4+14=18)

You can specify multiple format masks, each enclosed by square brackets.
<format-mask> = <start> "," <end> "," "'" <time-pattern> "'" [ "," <current-
year> ]
<start> = integer
<end> = integer
<time-pattern> = <java.text.SimpleDateFormat> | "N"
<current-year> = "CY"
TimestampFormats = { "[" <format-mask> "]" }+

Example: Timestamp Formats
[41,53,'MMM dd HH:mm',CY][41,53,'MMM dd yyyy']
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 10

The CY token shown in the preceding text must be added for time patterns
where a year is not present. The adapter then internally appends the format
yyyy to the user-provided format mask and appends the current year to the
actual timestamp string before parsing it.

The <start> and <end> indexes demarcate the timestamp substring of the
string, originating either from the FTP LIST command or the actual file name. For
a given FTP server (brand/vendor), you may need to manually experiment with
the server to determine which format masks to use.

If <time-pattern> is specified as N, the substring is treated as a regular integral
number. In terms of time (t), the number (N) is interpreted as follows:
t = "12:00 am, January 1, 1970 UTC" + N milliseconds

receiver read ordered timestamp offset
This parameter is used to convert timestamp of the file with respect to the
system time where B2B Server is running.

Example: -25200000
This subtracts 2520 milliseconds from timestamp obtained from FTP command to
make is compatible with B2B system time.

Note:
Even if B2B and FTP are on same machine, we may need offset, as the
timestamp from FTP command could be in different time zone.
By turning on Transport log, you can see how what timestamp the FTP
command is returning and then set values appropriately.

Parameter examples

Parameter LISTTIME TIMSTAMP
Minimum Age =
timestamp source =
timestamp format =
timestamp offset =
60000
listtime
[43,55,'MMM dd HH:mm',ucy]
-25200000
60000
timestamp
[4,+14,'yyyyMMddHHmmss']
-25200000



Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 11
Partner Facing AQ / JMS (Patch 6800745)
AQ/JMS transports have been added under the Generic Exchange












OracIe Advanced Queue (AQ)
Parameter Default Description
Transport Callout Class Callout qualified class name
Transport Callout Library Callout library file name
Transport Callout Properties Callout properties
Transport Callout Timeout) 30 Wait time for Callout execution (sec)
Hostname Where queue is installed (database)
Consumer b2buser Consumer queue name
Port Database port number
SID Database system identifier (SID)
Polling interval Time interval in milliseconds
Recipient Recipient queue name

JAVA Messaging Service (JMS)
Parameter Default Description
Connection Factory Location java:comp/resource/JMS_b2b/Que
ueConnectionFactories/qcf
JNDI location or Java class name
Destination Provider
Properties
java.naming.factory.initial=com.ev
ermind.server.rmi.RMIInitialContex
tFactory;java.naming.security.cred
entials=admin;java.naming.securit
y.principal=welcome;java.naming.
provider.url=ormi://144.25.141.67
:1089/
JMS vendor-specific properties to pass
to the destination
Factory Provider Properties java.naming.factory.initial=com.ev
ermind.server.rmi.RMIInitialContex
tFactory;java.naming.security.cred
entials=welcome;java.naming.sec
urity.principal=admin;java.naming
.provider.url=ormi://144.25.141.6
7:1089/
JMS vendor-specific properties to pass
to the connection factory
IsTopic Topic or queue (true | false)
Message Type bytes Text | bytes
polling interval 3000 Time interval in milliseconds
Subscriber ID Required if IsTopic = true
Transport Callout Class Callout qualified class name
Transport Callout Library Callout library file name
Transport Callout Properties Callout properties
Transport Callout Timeout 30 Wait time for Callout execution (sec)
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 12
Partner Facing JAVA callouts (Patch 6800745)
The following transport parameters for all supported transport protocols have been introduced:
Transport Callout Timeout (in seconds) - Wait time for Callout execution
Transport Callout Class - Callout qualified class name
Transport Callout Library - Callout library file name
Transport Callout Properties - Callout properties
Set as "name=value pairs
Separated by comma

Files would be placed in the callout directory:
Refer tip.properties parameter oracle.tip.callout.directory

When configuring the Transport if you want to execute a callout, you need to specify
above values. In order to execute Callout (at runtime), the minimum required
parameters are:
Transport Callout Class
Transport Callout Library

Example:


Outbound: AvaiIabIe transport Header information
In addition to other transport header values (specific to particular exchange/transport),
Outbound Partner Facing Callout can have access to following parameters.
FROM_PARTY
TO_PARTY
ACTIONNAME
CONVERSATION_ID
DOCTYPE_NAME
DOCTYPE_REVISION
FROM_PARTY
INREPLYTO_ID
MSG_ID
MSG_TYPE
SERVICE
TIMESTAMP

The value for above parameters can be obtained as:
CalloutMessage cmIn = (CalloutMessage)input.get(0);
String fromParty = cmIn.getParameter("FROM_PARTY");
String toParty = cmIn.getParameter("TO_PARTY");
String actionName = cmIn.getParameter("ACTION_NAME");
String docTypeName = cmIn.getParameter("DOCTYPE_NAME");
String docTypeRev = cmIn.getParameter("DOCTYPE_REVISION");
.

Similarly, any other protocol specific transport header value can be obtained.
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 13
Inbound: AvaiIabIe transport Header information
In inbound case, as Partner Facing Callout is executed just after receiving message.
Inbound Partner Facing Callout gets transport headers that are specific to particular
transport/exchange. To get list of all transport headers, you can use,

Properties p = cmIn.getParameters();

Below given is sample list of transport headers for some exchange protocols.

EBMS Exchange
CONTENT-LENGTH =2206
HOST =127.0.0.1:7781
USER-AGENT =Oracle HTTPClient Version 10h
SOAPACTION ="ebXML"
ORACLE-ECID =1206440295:140.87.1.172:7257:0:1,0
CONNECTION =Keep-Alive, TE
ACCEPT-ENCODING =gzip, x-gzip, compress, x-compress
TE =trailers, deflate, gzip, compress
CONTENT-TYPE =multipart/related;type="text/xml";boundary="----
=_Part_1_13285460.1206440265388";start="<ebxheader-
8C5701AC118E57185120000036658800>"

Generic (File/FTP) Exchange
Filename =Acme_2008Mar25_02_25_49_424.dat
filesize =25991
filename_format =%FROM_PARTY%_%TIMESTAMP%.dat
file_ext =dat
fullpath =/GlobalChips/Acme_2008Mar25_02_25_49_424.dat
timestamp =2008-03-25T02:25:49.000-08:00
directoryname_format =%TO_PARTY%

MLLP Exchange
From =localhost.localdomain
FromIP =127.0.0.1
FARequired =true
ProtocolVersion =1.0
ToIP =127.0.0.1
Port =5555
Message-Id =12064414429481175586641
DynamicIP =127.0.0.1:63962
Protocol =TCP
To =localhost.localdomain

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 14
AS2 Exchange
MESSAGE-ID =<40819018@Acme>
USER-AGENT =AS2 Server Oracle HTTPClient Version 10h
MIME-VERSION =1.0
ACCEPT-ENCODING =gzip, x-gzip, compress, x-compress
CONTENT-LENGTH =30334
FROM =Acme
HOST =127.0.0.1:7781
AS2-FROM =Acme
CONTENT-DISPOSITION =attachment; filename=4010
AS2-VERSION =1.1
DATE =Tue 25 Mar 2008 11:31:04 GMT
AS2-TO =GlobalChips
DISPOSITION-NOTIFICATION-TO =mrAS2@as2.com
CONTENT-TRANSFER-ENCODING =binary
ORACLE-ECID =1206441072:140.87.1.172:7251:0:10,0
TE =trailers, deflate, gzip, compress
CONTENT-TYP =application/EDI-X12; name=4010
CONNECTION =close TE
RECEIPT-DELIVERY-OPTION =http://127.0.0.1:7777/b2b/transportServlet

HTTP Sync | Form Post | Transport Retires | Authentication
HTTP sync and forma post functionally can be can be configured using theses setting.

Parameter Description
Form Post Delivery Channel
Header Parameter: http.form.parameter=msg
Synchronous Response (Client) Delivery Channel
Header Parameters http.sync=true
Synchronous Request (Server) Delivery Channel
Header Parameters: http.sync=true#timeout=300000
UR: b2b/SYNCResponseServlet
Acknowledgement Mode = NONE
Support Business Actions
Functional acknowledgement required? = false
Tip.properties
oracle.tip.adapter.b2b.httpSyncReplyWaitTime= 10
oracle.tip.adapter.b2b.ReplyToAsRequest=true
Back end system
P_MESSAGE_TYPE: MSG_D = NREPLYTO_MSG_D
Transport level variable retry
nterval
oracle.tip.transport.HttpSender.TimeToAck
Basic Authentication Delivery Channel
Header Parameters: Authtype=basic# realm=myRealm
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 15
Electronic Data Interchange (EDI)
Required tags for the EDI XML delivered to Oracle B2B
Prior to submitting the transaction set to the Oracle B2B internal delivery channel there are
three mandatory tags that must be populated: (examples)
Standard = X12
Version = V4010
GUID = {12345678-1234-1234-1234-123456789012}
The GUID must be in this format
Batching
Not batching, the GUID can be a hardcode value.
Batching the GUID MUST BE unique
You can use the generateGUID() function and parse in the '{','}','-'
Steps:
1. Create a variables in the XSLT Map
Variable: VarGUID
Xpath: orcl:generate-guid()
2. Define a CONCAT for the GUID element
"{"
substring($VarGUID,1,8)
"-"
substring($VarGUID,9,4)
"-"
substring($VarGUID,13,4)
"-"
substring($VarGUID,17,4)
"-"
substring($VarGUID,21,12)
"}"

Macros available to generate segment Counts & Control #
#ControlNumber#
Generates the Transaction Set Control Number for ST02 & SE02
In your XSLT map assign ST02 & SE02: #ControlNumber#

#SegmentCount#
Generates the Segment Count for SE01
In your XSLT map assign SE01: #SegmentCount#

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 16

Overriding outbound Envelope: ISA/UNB, GS/UNG, ST/UNH
The XML Schema generated by the Document Editor contains Internal Properties that enables
a user to override the defaults, in Oracle B2B, that are used to generate the envelope for
outbound transaction sets

Every XSD generated by the Document Editor has this structure. Note: only relevant items are
shown.


Structure Property (sample)
Transaction-850
Standard X12
Version V4010
GUID {12345678-1234-1234-1234-123456789012}
Internal-Properties
Data-Structure
Name Interchange
Property Acme
Name InterchangeSenderID
Data-Structure
Name Group
Property Acme
Name GroupSenderID
Data-Structure
Name Transaction
Property 850
Name TransactionID

Notes:
Standard, Version & GUID are Mandatory
If you use the Internal-Properties then all three Data-Structures (Interchange,
Group & Transaction) MUST be assigned
Addition property Name / Property values can be added as required

Example XML
<?xml version="1.0" ?><Transaction-850
xmlns:ns0="urn:oracle:integration:b2b:C74D8162BEC44EDB8DD779345A244626" Standard="X12"
Version="V4010" GUID="{12345678-1234-1234-1234-123456789012}"
xmlns="urn:oracle:integration:b2b:C74D8162BEC44EDB8DD779345A244626">

<ns0:Internal-Properties>

<ns0:Data-Structure Name="Interchange">
<ns0:Property Name="InterchangeSenderID">Acme</ns0:Property>

<ns0:Data-Structure Name="Group">
<ns0:Property Name="GroupSenderID">3Acme</ns0:Property>

<ns0:Data-Structure Name="Transaction">
<ns0:Property Name="TransactionID">850</ns0:Property>
</ns0:Data-Structure>

</ns0:Data-Structure>
</ns0:Data-Structure>
</ns0:Internal-Properties>

<ns0:Segment-ST Type="">
.
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 17
X12 Property Names
Data Structure Name - Interchange
Property Name Property (sample)
InterchangeAuthorizationInfoQual 00
InterchangeAuthorizationInfo
InterchangeSecurityInfoQual 00
InterchangeSecurityInfo
InterchangeSenderQual ZZ
InterchangeSenderID ACME
InterchangeReceiverQual ZZ
InterchangeReceiverID GLOBALCHIPS
InterchangeDate 041216
InterchangeTime
InterchangeControlStandard_RepeatingSeparator U
InterchangeControlVersion 00400
InterchangeControlNumber 000001688
InterchangeAckRequested 0
InterchangeUsageIndicator P
InterchangeComponentElementSep 0x7d
DecimalSeparator 0x2e
ElementDelimiter 0x7e
ReleaseCharacter
RepeatingSeparator 0x2e
SegmentDelimiter 0x7e
SubelementDelimiter 0x7d
InterchangeChildCount 1
InterchangeTrailerControlNumber 000001688

X12 Property Names
Data Structure Name - Group
Property Name Property (sample)
GroupID PO
GroupSenderID ACME
GroupReceiverID GLOBALCHIPS
GroupDate 20041216
GroupTime 1900
GroupControlNumber 1695
GroupAgencyCode C
GroupVersionNumber 00400
GroupChildCount 1
GroupTrailerControlNumber 1695

X12 Property Names
Data Structure Name - Transaction
Property Name Property (sample)
TransactionID 850
TransactionControlNumber 16950001
TransactionImplementationReference
TransactionChildCount 23
TransactionTrailerControlNumber 6950001

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 18
UN/EDIFACT Property Names
Data Structure Name - Interchange
Property Name Property (sample)
CharSet UNOA
InterchangeControlVersion 2
InterchangeSenderID ACME
InterchangeSenderQual ZZ
InterchangeSenderAddress
InterchangeReceiverID GLOBALCHIPS
InterchangeReceiverQual ZZ
InterchangeReceiverAddress
InterchangeDate 070223
InterchangeTime 1027
InterchangeControlNumber 9158
InterchangeRecipientRefPas
InterchangeRecipientRefPasQual
InterchangeAppReference 00400
InterchangePriorityCode 000001688
InterchangeAckRequested 0
InterchangeAgreementID P
InterchangeUsageIndicator
DecimalSeparator 0x2e
ElementDelimiter 0x2b
ReleaseCharacter 0x3f
RepeatingSeparator
SegmentDelimiter 0x27
SubelementDelimiter 0x3a
InterchangeChildCount 1
interchangeTrailerControlNumber 9158

UN/EDIFACT Property Names
Data Structure Name - Group
Property Name Property (sample)
GroupID ORDERS
GroupSenderID ACME
GroupSenderQual ZZ
GroupReceiverID GLOBALCHIPS
GroupReceiverQual ZZ
GroupDate 20070613
GroupTime 1456
GroupControlNumber 34302048001000
GroupControllingAgency UN
GroupVersion D
GroupReleaseNumber 98A
GroupAssociationAssignedCode DEBL02
GroupAppPassword
GroupChildCount 1
GroupTrailerControlNumber 34302048001000

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 19
UN/EDIFACT Property Names
Data Structure Name - Transaction
Property Name Property (sample)
TransactionID ORDERS
TransactionControllingAgency UN
TransactionMessageVersionNumber D
TransactionMessageReleaseNumber 98A
TransactionAssociationAssignedCode PO
TransactionCommonAccessRef
TransactionTransferSequence
TransactionTransferIndicator
TransactionChildCount 89
TransactionTrailerControlNumber 12891

Using one Trading Partner to exchange transaction sets with a VAN
One Trading Partner & One Trading Partner Agreement

Outbound
Set up Trading Partner.
Prior to submitting the transaction set to the Oracle B2B internal delivery set the
Interchange, Group & Transaction settings EDI XML instance. (Refer to: Overriding
Interchange, Group & Transaction setting for outbound transaction sets)
Inbound
If validation is required:
Set system to Identify Trading Partner from ether Interchange Sender ID
(ISA 06) or Application's Sender Code (GS 02).
oracle.tip.adapter.b2b.edi.identifyFromTP =
Interchange | Group | Exchange
Create list of valid Trading Partner Identifiers
If validation is deferred to middleware:
Use default Trading Partner Identification
List of valid Trading Partner Identifications is NOT required
Turn validation off, so header is not validated

Example FTP with validation deferred:
Set system to identify Trading Partner from file directory.
oracle.tip.adapter.b2b.allTPInOneDirectory=true
Make Trading Partner Name the directory name
Turn validation off, so header is not validated

Note:
With only one Remote Trading Partner you can have only one of each transaction
set type i.e. you cannot have two X12 4010 850 definitions
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 20
Count based batching
By default Oracle B2B performs time based batching, this feature enables count based batching
using the IP_MESSAGE_TYPE construct. Oracle B2B does not assume any correlation. Prior to
submitting the transaction set to the Oracle B2B internal delivery channel, set the
ACTION_NAME in the IP_MESSAGE TYPE. Example: D:12345:100:60

IP_MESSAGE_TYPE
Parameter Value
MSG_ID 987654321
FROM_PARTY Oracle
TO_PARTY Retex
DOCTYPE_NAME 850
DOCTYPE_REVISION 4010
ACTION_NAME D:12345:100:60

Syntax:
Parameter Value
BatchMode 'D' - Deferred
'I' - Immediate
BatchID Unique ID to be used for all messages going in the same batch.
Count Number of messages to be batched. Latest count takes effect.
Timeout Time to wait, in minutes, after this message before batching

Note: The separator is ":

Examples:
Count / Deferred batch: Id 12345, 100 transaction sets with a 60 minute timeout
Syntax: <BatchMode>:<BatchID>:<Count>:<timeout>
Example: D:12345:100:60

Immediate batch: Batch Id 12345 immediately
Syntax: <BatchMode>:<BatchID>:<Count>:<timeout>
Example: I:12345:100:60

Default behavior
The first transaction set establishes the batching criteria
Subsequent transaction sets CAN update the batching criteria
Example: D:12345:100:60
If ALL are received, within the timeout, then they are batched
If 90 of the 100 are received within the timeout, then the 90 are batched
An error is raised & placed on the queue (Consumer B2BERRORUSER)
If the remaining are received, then a new batch is established
If the criteria are not changed then: The total will not be met, the timeout
will occur and the batch is processed.

Removing extraneous characters from EDI native files
If you receive a Document Identification on an inbound native EDI transaction set it is
possible that extraneous characters e.g. <cr> have been added to the file. This property
setting will have Oracle B2B checks and removes them.

oracle.tip.adapter.b2b.edi.enablePreprocess = true | false
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 21
Health Level Seven (HL7)
Using one Trading Partner to broadcast to multiple recipients
In HL7 over MLLP the delivery channel defines the IP & port of the recipients, however, you
may want to override the default setting to send the message to an different recipient
dynamically. To do this, use the ACTION_NAME field in IP_MESSAGE_TYPE. Example:

Assume that the trading partner GlobalChips is configured with IP address 133.33.133.33 and
port 5000. To send the message to IP address 144.44.144.44 and port 3000, change the
ACTION_NAME field as follows:

IP_MESSAGE_TYPE
Parameter Value
MSG_ID 987654321
FROM_PARTY Oracle
TO_PARTY Retex
DOCTYPE_NAME 850
DOCTYPE_REVISION 4010
ACTION_NAME DynamicIP:GlobalChips_Endpoint:144.44.144.44:3000

Syntax:
Parameter Value
Constant DynamicIP
Unique Identifier GlobalChips_Endpoint
Target IP 144.44.144.44
Target Port 3000

Note:
The separator is ":

Required tags for the HL7 XML delivered to Oracle B2B
Prior to submitting the transaction set to the Oracle B2B internal delivery channel set there are
two mandatory tags that must be populated: (examples)
Standard = "HL7"
Version = "2.3.1
GUID = "{D4791971-A782-D811-B0F2-080020C8C860}"
The GUID must be in this format
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 22
RosettaNet
DTD to XSD conversation for RosettaNet
There are two options for RosettaNet DTD to XSD conversion

Option 1: Use the original DTD
In Oracle B2B, defined the PIP and set the DTD in the document definition.

Note:
Oracle B2B will deliver the DTD instance to the middleware
In-flight DTD to XSD Conversion can be performed in any of the technology
adapter, in this case, the Oracle AQ Adapter.

Option 2: Enable Oracle B2B for in-flight DTD to XSD Conversion


Created the XSD in Document Editor for DTD version: Edits as required
In the document definition:
Set the XSD in the document definition
DTD/XSD Namespace Conversion=
NONE B2B passes the DTD instance "as is
INBOUND B2B converts the instance DTD XSD
OUTBOUND B2B converts the instance XSD DTD
BOTH B2B converts in/outbound
Note:
The namespace information is taken from the XSD.
The DTD information is fixed based on the RosettaNet format.
WARNING:
The XSDs generated by the Document Editor have FIXED
namespaces. If you are using this method with a 2-action PIP,
ex: 3A4, then you MUST change one of the namespaces. This
will avoid namespace conflicts the BPEL process.

Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 23
Performance
Tuning parameters: tip.properties (Patch 7322333)

Queues & Acknowledgments
Parameter VaIue Description
oracle.tip.adapter.b2b.NumofPListeners 3 # of listener threads for the B2B event / message
queues. Max value of 6 is applicable f:
oracle.tip.adapter.b2b.ACKAsyncEvent=false
oracle.tip.adapter.b2b.ackListener=0
Else the combination of these two equal 6
oracle.tip.adapter.b2b.NumOfPListeners
oracle.tip.adapter.b2b.ackListener
oracle.tip.adapter.b2b.ackListener 3 # of listener threads for the ack queues
oracle.tip.adapter.b2b.ACKAsyncEvent true True: the ACK is processed asynchronously . An
event is inserted in the B2B_EVENT_QUEUE with
user "b2backuser'. A listener picks up the message
and send the ACK asynchronously to the sender
oracle.tip.adapter.b2b.optQ true Call optimized Stored Procedure
oracle.tip.adapter.b2b.nbEventHandling true When the Time to ACK is enabled, B2B retries the
message if the ACK is not received in time. f
the ACKs pile up in the B2B_EVENT_QUEUE a retry
can result, which results in a duplicate message to the
partner. n high volumes this prevent this behavior
oracle.tip.adapter.b2b.ActionAgreement Agreement dentification based on the ebMS headers
oracle.tip.adapter.b2b.optQ true Calls optimized Stored Procedure
oracle.tip.adapter.b2b.CacheWallet true ebMS Only: Caches certificates from the wallet Any
changes in wallet contents requires restart of B2B
Tuning parameters: tip.properties
General settings
Parameter VaIue Description
oracle.tip.adapter.b2b.TPACache true TPA details cached Up to 200 (ncrease heap Size)
oracle.tip.adapter.b2b.sleepTimeout 1 Sleep time for listeners when no messages in P_N_QUEUE
oracle.tip.repos.RowSize 100 Enables pre-fetching of metadata
oracle.tip.adapter.b2b.qMsgRatio 2 A ratio to for reading internal queues: Event | P_OUT_QUEUE

Large Files
Parameter: VaIue Description
oracle.tip.adapter.b2b.edi.fileBased true Payloads stored / forwarded
using file system not database
oracle.tip.adapter.b2b.edi.incoming.wiremessage.size 300000000 nbound threshold large file
oracle.tip.adapter.b2b.edi.incoming.wiremessage.directory C:\\in nbound directory
oracle.tip.adapter.b2b.edi.outputSize 102400 Outbound threshold large file
oracle.tip.adapter.b2b.edi.outputDirectory C:\\out Outbound directory
oracle.tip.adapter.b2b.PartialBatchCommitSize 200 Batch: ntermediate commit,
avoids bursts to the middleware
oracle.tip.adapter.b2b.edi.mergeMsgSize 500 Batch: ntermediate internal
batching. When completed all
intermediate batches are
concatenated
Last Updated: October 3, 2008
Oracle B2B Technical Tips Page 24




Oracle B2B

Created: March 25,, 2007
Lasted Updated: October 3, 2008
Auhor: Jeffrey Hutchins
Contributing Authors: Sundararaman Shenbagam
Ted Hong
Eng Khor
Krishnaprem Bhatia
Sankar Mani
JK Nair
Ramesh Anantharamaiah
Shub Lahiri
Cliff Wright
Mehendra Sharma

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com

Copyright 2005, Oracle. All rights reserved.
This document is provided for information purposes only and the
contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied
in law, including implied warranties and conditions of merchantability
or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document and no contractual obligations
are formed either directly or indirectly by this document. This document
may not be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without our prior written permission.
Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of
Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.

Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of
Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.

Das könnte Ihnen auch gefallen