Professional Documents
Culture Documents
B2B Technical Tips
B2B Technical Tips
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.