For every EDI document Processing in B2B, there is a need to configure the Envelope information by using Document Protocol parameters in B2B. This information is used by XEngine,
1. To create the envelope for the document sent by Back end application. Xengine create the envelope (Interchange and Group) ,embed the Transaction set and send it to Trading partner.
2. To identify the Incoming Document Type and revision, there by identifying the business action for Agreement Identification.
What is Internal Properties
For every XML schema generated per ecs file while modeling the document in B2B Document editor, it defines Internal Properties. Internal Properties are used to
1. Send the Envelope information to the back end application in case of Inbound flow. By default, XEngine strip off the Envelope information and send only the Transaction set to back end appliction.
2. Override the Document Protocol parameter which is defined in B2B, which is used by B2B to create the envelope.
set oracle.tip.adapter.b2b.edi.FAInternalProperties=true
in tip.properties to avail this feature.
B2B Generates FA/Control messages
Consider the case of B2B generating the Acknowledgment, by default B2B always uses Document protocol parameters to generate the envelope for sending FA/Control. By setting the
oracle.tip.adapter.b2b.edi.FAInternalProperties=true in tip.properties
it is possible to make use of the envelope details of the inbound business document while generating the FA/Control.
Friday, September 26, 2008
Internal Properties in Oracle B2B
Posted by
Ramesh Nittur
at
12:39 PM
0
comments
Labels: EDI
Saturday, September 20, 2008
Oracle B2B Booth in OOW-2008
There are interesting Retail and Health care use cases are getting demoed in B2B Booth. Do visit...
Posted by
Ramesh Nittur
at
8:41 AM
0
comments
Wednesday, September 10, 2008
Sync Response
This feature introduces a Synchronous response to any of the incoming Business Document. Sync HTTP response essentially mean, sending the response using the same http connection as the incoming business message.
There is an introduction of a new URI b2b/SYNCResponseServlet to handle the Sync response in B2B. Every business message which is received in this URI, it is expected to send the response using the same http connection with in the time out time. The time out time is configured in tip.properties using
oracle.tip.adapter.b2b.httpSyncReplyWaitTime=
Use case : Globalchips to receive 270 EDI request from Acme over HTTP and respond with 271 EDI synchronously.
Implementation :
1. Acme Side
a. For both Acme and Globalchips, supported business action(270,271) must have
Functional Acknowledgement required? should be set to NO.
b. Configure the following in the additional transport header for GlobalChips.
http.sync=true#timeout=300000
c. End point URI for GlobalChips is selected as b2b/SYNCResponseServlet
2. Global Chips side.
a. For both Acme and Globalchips, supported business action(270,271) must have
Functional Acknowledgement required? should be set to NO.
b. web.xml in $ORACLE_HOME/j2ee/OC4j_B2B/applications/b2b/ip/WEB-INF/ must be modified to include the following servlet-mapping for transportServlet.
<servlet-mapping>
<servlet-name>transportServlet</servlet-name>
<url-pattern>SYNCResponseServlet</url-pattern>
</servlet-mapping>
c. Configure the following tip.properties
oracle.tip.adapter.b2b.httpSyncReplyWaitTime = wait time in minutes.
d. Also set
oracle.tip.adapter.b2b.ReplyToAsRequest=true
Back end application such as BPEL is required to send the response i.e 271 with replyToMsgID value of the original message. B2B message ID of the request message 270 should be sent as replyToMsgID of the Synchronous response 271
Please note in Oracle 10g, this feature is not High availability enabled i.e it is not possible to get the request in one instance of B2B and send the Sync Response in another.
Posted by
Ramesh Nittur
at
6:57 AM
0
comments
Interesting Macros in EDI and HL7
Macros play an important role in XEngine, when there is an use case to fill this data in the B2B Layer, instead of sending it from the Back end application.
1. controlNumber.
In case of Outbound Messages, B2B Generates the control number only in case the Back end application send the EDI message with the Keyword #controlNumber for e.g.
Oracle AS B2B fills in the unique number for Interchange and Transaction set Control Number and uses it for correlating the incoming Control messages.
2. SegmentCount
Segment count for the current EDI Document. Xengine will replace with the approprite values. e.g #SegmentCount#
3. MessageSendingFacility
MSH Position 4.1 e.g #Property(MessageSendingFacility)#
4. MessageSendingApp
MSH Position 3.1 e.g #Property(MessageSendingApp)#
5. MessageReceivingApp
MSH Position 5.1 e.g #Property(MessageReceivingApp)
6. MessageReceivingFacility
MSH Position 6.1 e.g #Property(MessageReceivingFacility)#
Posted by
Ramesh Nittur
at
2:35 AM
0
comments
Monday, September 1, 2008
How to enable b2b_idc_transport.log
The below two tip.properties used to control the transport logs,
For External Delivery Channel :
oracle.tip.adapter.b2b.transportTraceLogLevel
For Internal Delivery Channel :
oracle.tip.adapter.b2b.appTransportTraceLogLevel
The possible values could be,
WARNING | STATUS | DEBUG | ERROR
For backward compatibility, we have made assumption that if old properties
are defined, logLevel will be assumed to be DEBUG
The new Properties for Transport Logger overrides old properties.
If none of the properties (old and new) for Transport Logger is specified,
default log level is ERROR
The new transport log files will be created in the same directory in which
b2b log file is created.
Example: $ORACLE_HOME/ip/log/b2b
For Internal delivery channel b2b_idc_transport.log
For External delivery channel b2b_dc_transport.log
Posted by
Ramesh Nittur
at
2:48 AM
0
comments
Thursday, August 28, 2008
Attending OOW-2008
I will be there in Oracle Open World - 2008. Are you, if so lets plan on meeting there.
Posted by
Ramesh Nittur
at
5:00 AM
0
comments
Friday, August 8, 2008
Broadcast feature in Oracle AS B2B 10g
Broadcast feature of Oracle AS B2B 10g enables the users to send the same message to multiple trading partners. This gives the flexibility to the users to create their own groups of trading partners specific to the business needs. The back-end application can then send a message to the group and B2B will send the message to all the members of the group.
The salient points of the feature are:
- Prevent BPEL to send multiple files there by reducing the traffic on
BPEL-B2B and also in the B2B. - Bring the concept of trading partner groups in B2B and use it for
broadcasting. This will prevent BPEL user to know about Trading partner details as well as the Group as this is B2B specific meta data - This is an event driven approach to handle the multiple messages to various trading partner
actionName = Grouping:<name of the group>
This feature requires an additional identifier to be added for the Trading partner indicating the group. This can be achieved by creating a new custom Identifier and associating the same for the required trading partners
Steps to create a custom Identifier in B2B UI:
Administration -> Design -> Trading Partner Identification Types -> Create
This is available as part of MLR 10.1.2.3.0 - # 3
Patch # 7184219
Posted by
Dheeraj Kumar M
at
6:04 AM
0
comments
Tuesday, August 5, 2008
Deque Issue in Oracle B2B
Very often i am hearing Deque issues in Oracle B2B and the root cause for the same is due to the mismatch in the namespace and is resulted due to old XSD file or the legacy option used to export the schemas from Ecs file.
To address this issue, apply the latest patch and regenerate the ecs and xsd using OracleAS Integration B2B Option. Please make sure to set the Dynamicnamespace in
<ORACLE_HOME>\ip\oem\edifecs\XEngine\config\registryValidator.xml
before regenerating the ecs/xsd file. Use the generated ecs file in B2B and XSD in BPEL.
Posted by
Ramesh Nittur
at
4:41 AM
0
comments
Sunday, August 3, 2008
TPA caching
For performance reason, we have introduced a notion of TPA Caching for B2B Application which has a better Hardware Infrastructure especially Physical memory.
When this property is enabled all the TPA details will be read from the cache instead of runtime repository.
oracle.tip.adapter.b2b.TPACache=true
If the Agreement details is not available in the cache, B2B Engine will refer to the meta data repository and cache for subsequent use.
P.S Make sure to increase the heap size in opmn.xml as caching consumes more memory. This is applicable for both Document/Business action based Identification.
Posted by
Ramesh Nittur
at
6:38 AM
0
comments
Labels: Performance
Tuesday, July 22, 2008
Handling Multiple Group ID - Multiple Departments of the same Enterprise
Consider a case where in the Enterprise GlobalCust has Two internal Department with name GlobalChips and GlobalCorp. Trading partner Acme wants to send messages to the two department by referring GlobaclChips and GlobalCorp in the Group ID.
1. Create two Identifier of Type EDI Group ID .
2. One with value GlobalChips and Another with GlobalCorp.
3. Add oracle.tip.adapter.b2b.edi.identifyFromTP = Group in the tip.properties and
restart B2B.
4. Create an Agreement with EDI Group ID as value GlobalChips.
5. Turn off the validation.
Send two message with Application Recipient Code as GlobalChips and GlobalCorp. Both of these messages should be accepted by B2B Engine with the To Party as GlobalCust.
P.S For generating FA similar to Inbound Business message please set
oracle.tip.b2b.edi.FAInternalProperties=true in tip.properties
P.S Make sure to disable the validation.
Another way of enabling this feature is by using the following tip.property.
oracle.tip.adapter.b2b.edi.ignoreValidation=<values>
Provide those identifier which will be different from the configured one.
Few of the sample identifiers are as follows:
InterchangeReceiverID,InterchangeSenderID,GroupReceiverID,GroupSenderID,GroupSenderQual,GroupReceiverQual,InterchangeSenderQual,InterchangeReceiverQual
Posted by
Ramesh Nittur
at
5:47 AM
0
comments
Labels: EDI
Performance Tips to handle Large number of configuration
Performance Tips to handle Multiple configuration is to enable the following tip.properties and restart B2B
oracle.tip.configuration.ignoreValidation=true
or
oracle.tip.buslogic.validation.ModelValidation=off
Please ensure to be on 10.1.2.3 and latest patch.
Posted by
Ramesh Nittur
at
5:30 AM
0
comments
Labels: Deployment-Config
Tuesday, July 15, 2008
RFP Support
Leave your question/Clarification on RFP by using option "Post a Comment" . I shall get back to you on this.
Posted by
Ramesh Nittur
at
4:21 AM
0
comments
Labels: Promotion
Thursday, July 10, 2008
10.1.2.3 - Latest B2B Patch Details
Going forward , install only 10.1.2.3 application server as all the patches will be developed for this version.
Please download 10123 AS Patch set from meta link http://metalink.oracle.com
Navigate:
1) On Patches & Update Page, click Link (Quick Links to the Latest Patchsets, Mini Packs, and Maintenance Packs)
2) On this page Click Link (Oracle Application Server Products)
3) Click Patch Number (5983622)
4) From this Page you can download Patchset for required platform.
Once 10.1.2.3.0 AS Patchset is applied, you can move to latest MLR#7184219 for B2B (10.1.2.3.0)
For Document Editor use 5550097.
Posted by
Ramesh Nittur
at
12:55 AM
0
comments
Labels: B2BPatch
Wednesday, July 9, 2008
Multiple Instances on the same box - RMI port conflict
Typically there is the RMI Port conflict when multiple instances of B2B are installed on the same box. Typically first instance will take the RMI Port as 5110 and hence the second instance is forced to take next available port which is 5111.
Even though this value is part of the tip.properties same is not updated in the web application.
How To Address this problem
1. Navigate to /ORACLE_HOME/j2ee/OC4J_B2B/applications/b2b/ip/WEB-INF. Take a backup of web.xml.
2. Identify the rmiport in the initParam, and edit the value to 5111 instead of 5110
In the web.xml file, alter the following
From
-----------
<init-param>
<param-name>rmiPort<param-value>5110</init-param>
To
---
<init-param>
<param-name>rmiPort<param-value>5111</init-param>
3. Make sure the same is reflected in tip.properties using
oracle.tip.adapter.b2b.RMIPort = 5110
4. Restart B2B
Posted by
Ramesh Nittur
at
9:30 PM
4
comments
Labels: High Availability
Thursday, June 12, 2008
Why Larry Ellison Is the Iron Man of Tech
Posted by
Ramesh Nittur
at
5:54 AM
0
comments
Labels: Promotion
Thursday, June 5, 2008
My Birthday on June 3rd
Thanks a lot for all of the Birthday wishes on June 3rd. I received close to 1000 emails wishes for the first time in my life for my Birthday and i am very much thrilled. I never thought i have so many friends in my Blogging community.
Thanks again. you have made my day.
Cheers,
Ramesh
Posted by
Ramesh Nittur
at
1:53 AM
2
comments
Labels: Promotion
Sunday, June 1, 2008
How to change the metadata in Document Editor ? I.e to change the length of Country code.
Posted by
Ramesh Nittur
at
10:14 PM
0
comments
Labels: B2B Document Editor
File Naming convention in File/FTP Delivery channel
Often times it is a challenge to follow the file naming convention as it is send by the Trading partner. However for File/FTP Delivery Chanel following a File naming convention is mandatory if the identification is based on Exchange. This can be addressed by
1. Setting oracle.tip.adapter.b2b.allTPInOneDirectory = false and create a directory specific to the trading partner and have the Trading Partner drop the files in the Trading Partner specific folder. This will help B2B to identify the Trading partner with out any file naming convention.
2. Identify the trading partner using Group sender /Interchange sender ID.
Create an Identification as EDI Interchange ID/EDI Group ID in the Trading Partner profile, and assign a value. Make sure to have Trading partner send this value in either Interchange Sender ID or Group Sender ID in the payload. EDI Interchange ID /Group ID defined in the Trading Partner profile need not have to be part of the Identifier used in the agreement.
Posted by
Ramesh Nittur
at
10:10 PM
3
comments
Labels: Generic File
How To Handle Trimming Spaces in the EDI payload
Ideally there should not be Trimming spaces in the EDI payload , which results in a parsing Error while message processing. This can be handles either by
a. Requesting the customer to Trim the spaces in the end of the payload.
b. Ignoring the Parsing error due to spaces. This can be done by
suppressing the error in $ORACLE_HOME/ip/oem/edifecs/XEngine/config/ErrorSeverityConfig.xml
An error code example is 50420000. In this example, you need to append this towards the end of the ErrorSeverityConfig.xml file.
<ApplyTo>
<Criteria Name="ErrorID" Value="50420000"/>
<SetSeverity SeverityID="0"/>
</ApplyTo>
Posted by
Ramesh Nittur
at
10:05 PM
1 comments
Labels: EDI
Thursday, May 29, 2008
Steps to configure and test the Dynamic Email feature of Oracle AS B2B 10.1.2.0.2
- Import the tutorial samples of ( for e.g:EDIFACT ) of 10.1.2.0.2 in 2 environments for Acme and GlobalChips
- Provide a new delivery channel detail and create the agreement for both Acme and GlobalChips
- In the delivery channel provide the endpoint of the IMAP Server.
- Provide the username/password (e.g.: user1/user1)
Scenario 1:
This is the normal scenario, where in user1@justb2b.com (Acme) will send a message to user2@justb2b.com (GlobalChips)
When observed in the log/the email client, we can see the message in the inbox of User2
Scenario 2:
actionName = DynamicEmail:GlobalChips_1234:user3@justb2b.com;EmailSubject:UNB
In this case, edit endpoint details to point to another email id user3@justb2b.com and change the username/password.
When observed in the log/the email client, we can see the message in the inbox of User3. Though the in the acme machine, the configuration for GlobalChips is reading user2, due to the dynamic email feature, the mail gets delivered to user3. Ideally, this can be well tested if we have 3 environments for each user.
queue = IP_OUT_QUEUE
replyToMsgID =
from = Acme
to = GlobalChips
#actionName = DynamicEmail:GlobalChips_1234:user3@justb2b.com;EmailSubject:UNB
#eventName = Process_ORDERS
doctypeName = ORDERS
doctypeRevision = D98A
payload = Acme_orders.xml
attachment =
In the above enqueue script, the actionName has 2 pieces.
o DynamicEmail
In this case, the message gets delivered to the email address specified in the properties
o EmailSubject
The value of EmailSubject is “UNB”. In this case, the email subject will contain the UNB segment of the EDIFACT Message. If the "EmailSubject" has the value other than "UNB", then that string itself will be considered as the subject.
Note: The Dynamic email attribute does not require any additional configuration.
IMAP Server Setting:
Posted by
Dheeraj Kumar M
at
3:16 AM
0
comments
Labels: Dynamic Email
Friday, May 9, 2008
Time to perform /Time to Acknowledge
Time to perform : Time to perform is an important concept in Rosettanet implemented by Oracle B2B to define the timeout of a collaboration . It can be defined in the transaction level or collaboration level. It is defined as the time in minutes to perform or complete the transaction. If there is a failure to complete the collaboration with in the specified time, then b2b errors out the collaboration. This configuration can be seen as part of defining Transaction or collaboration.
This value can be overridden specific to Trading Partner.
Time to Acknowledgement : This defines the time with in which the Acknowledgment message must be received. If an Acknowledgment message is not received then B2B retries based on the retry count and failure in getting the Acknowledgment results in error.
Posted by
Ramesh Nittur
at
5:22 AM
0
comments
Labels: RosettaNet, SLA
Oracle AS B2B FTPS setup
1. Create a self signed host certificate.
2. Import the host certificate into the wallet. Import the Trading partner certificate for FTP over SSL as a trusted certificate.
3. In the General Tab of host Trading partner , create the wallet password.
4. Point the wallet in the tip.properties.
FTP Delivery channel Setup ( Generic Over FTP)
5. Depending on the mode of data transfer i.e Active/Passive , specify the data port for Active configuration and no data port for passive mode. Control port is there for both the mode and by default B2B considers this to be 21, there is a need to
mention it for any deviation.
6. Receiver Channel Mask (Host) : Depending on whether No channel encrypted, data channel to be encrypted , Control Channel to be encrypted or Both control and Data channel to be encrypted specity none, Data, Control or Both accordingly.
7. Sender Channel Mask (Trading Partner) : Depending on whether No channel enrypted, data channel to be encrypted , Control Channel to be encrypted or Both control and Data channel to be encrypted specity none, Data, Control or Both accordingly.
Note:
1. "sender channel mask" - used only when B2B send files to ftp server. The value "Both" means both channels "Control" and "Data" would be encrypted.
2. "receiver channel mask" - used only when B2B pick files from ftp server. The value "Both" means both channels "Control" and "Data" would be encrypted.
3. The other possible values what yopu provide here are "None", "Control" and "Data". Hope, the values are pretty self explanatory.
FTPS Server Configuration. Download a FTPS server such as Filezilla and follow the below steps.
1. Create a 1024 bit certificate and point to the same.
2. Create a user and/or group with permissions to a folder.
3. Download FTPS client , and connect to the FTP server , accept the certificate after the first connection.
4. Exchange the messages.
Posted by
Ramesh Nittur
at
4:27 AM
0
comments
Labels: SSL
Oracle AS B2B DMZ setup
Instructions to setup and access B2B via DMZ.
This configuration is assumed to install B2B with in the firewall and standalone OHS in the DMZ and to obtain the firewall clearence for the Following port.
1. HTTP Port of OHS which sits in DMZ
2. HTTP Port of B2B which is with in the firewall.
Append the following lines to LoadModule section of standalone OHS
httpd.conf file
LoadModule proxy_module modules/mod_proxy.so (If it is already there then not required)
LoadModule proxy_http_module modules/mod_proxy_http.so
Add following lines to end of standalone Apache2.0 httpd.conf file
ProxyPass / http://
ProxyPassReverse / http://
To work above configuration, HTTP port on which B2B listens should be opened on internal firewall.
Testing of DMZ setup
----------------------
Restart standalone Apache 2.0
Invoke the following URL from any machine in DMZ using browser
http://
Above request initially goes to DMZ Apache and we have configured Apache to forward the request to B2B instance in intranet.It should display the
'transportServlet' parameters if everything goes well.
Above testing confirms that request is being passed from DMZ layer to Intranet layer but not from outside world to Intranet layer.
Testing from outside public network
-------------------------------------
Configure external firewall to accept the data for DMZ standalone Apache HTTP port.
Use the URL http://
It should display the 'B2B server' parameters if everything goes well.
DMZ setup with load balancer
-------------------------------
Optionally you can configure Load balancer like 'BigIP' on external firewall to route the requests to DMZ layer.If you have DMZ layer front ended by load balancer then configure the load balancer to communicate with standalone HTTP server in DMZ.
In this case we expose the URL http://
Proxy configuration for B2B
-----------------------------
If you want to configure B2B to use proxy for all outgoing messages then read below.
Proxy server information needs to be provided in opmn.xml file of B2B midtier.
1) look for
2) then look for
4) look for
5) then look for
6) with in that tag make sure we should have
In the above tag we also have some additional security attributes keep them as they are.
Now restart B2B and oc4j_b2b components or all components.
Refer the following documents for various High availability questions.
http://download-east.oracle.com/docs/cd/B14099_19/tru64.1012/install.1012/install/topo.htm#BABCFDBI
http://download-west.oracle.com/docs/cd/B14099_19/core.1012/b14003/mt_comp.htm
Posted by
Ramesh Nittur
at
4:13 AM
1 comments
Labels: DMZ, High Availability
Tuesday, April 15, 2008
Oracle B2B and XML Gateway Integration
B2B XMLGateway Interoperability can be achieved in two ways.
1. ECX Queues : B2B has pre-seeded delivery channel for the XML Gateway Inbound and outbound queues such as ECX_INBOUND and ECX_OUTBOUND. Even though the Delivery channels are pre-seeded , there is a need to create the queues and the corresponding SQL are as follows.
connect apps/apps
drop type ECXMSG;
/
create type ECXMSG as OBJECT (
MESSAGE_TYPE VARCHAR2(2000) ,
MESSAGE_STANDARD VARCHAR2(2000) ,
TRANSACTION_TYPE VARCHAR2(2000) ,
TRANSACTION_SUBTYPE VARCHAR2(2000) ,
DOCUMENT_NUMBER VARCHAR2(2000) ,
PARTYID VARCHAR2(2000) ,
PARTY_SITE_ID VARCHAR2(2000) ,
PARTY_TYPE VARCHAR2(2000) ,
PROTOCOL_TYPE VARCHAR2(2000) ,
PROTOCOL_ADDRESS VARCHAR2(2000) ,
USERNAME VARCHAR2(2000) ,
PASSWORD VARCHAR2(2000) ,
PAYLOAD CLOB ,
ATTRIBUTE1 VARCHAR2(2000) ,
ATTRIBUTE2 VARCHAR2(2000) ,
ATTRIBUTE3 VARCHAR2(2000) ,
ATTRIBUTE4 VARCHAR2(2000) ,
ATTRIBUTE5 VARCHAR2(2000)
);
/
begin
begin
dbms_aqadm.stop_queue('ECX_INBOUND');
exception when others then null; end;
begin
dbms_aqadm.stop_queue('ECX_OUTBOUND');
exception when others then null; end;
begin
dbms_aqadm.drop_queue('ECX_INBOUND');
exception when others then null; end;
begin
dbms_aqadm.drop_queue('ECX_OUTBOUND');
exception when others then null; end;
begin
dbms_aqadm.drop_queue_table('ECX_INQUEUE');
exception when others then null; end;
begin
dbms_aqadm.drop_queue_table('ECX_OUTQUEUE');
exception when others then null; end;
end;
/
declare
begin
dbms_aqadm.create_queue_table('ECX_INQUEUE','apps.ECXMSG',multiple_consumers=>FALSE);
dbms_aqadm.create_queue_table('ECX_OUTQUEUE','apps.ECXMSG',multiple_consumers=>FALSE);
dbms_aqadm.create_queue('ECX_INBOUND', 'ECX_INQUEUE');
dbms_aqadm.create_queue('ECX_OUTBOUND', 'ECX_OUTQUEUE');
dbms_aqadm.start_queue('ECX_INBOUND');
dbms_aqadm.start_queue('ECX_OUTBOUND');
end;
/
connect system/welcome1
grant execute on apps.ECXMSG to b2b
/
exit;
XML Gateway enques the message to ECX_OUTBOUND queues and pick it from ECX_INBOUND queues. For outbound XML Gateway
should set the following ECX Headers.
MESSAGE_TYPE
MESSAGE_STANDARD
TRANSACTION_TYPE
TRANSACTION_SUBTYPE
DOCUMENT_NUMBER
PARTYID
PARTY_SITE_ID
PARTY_TYPE
PROTOCOL_TYPE
PROTOCOL_ADDRESS
USERNAME
PASSWORD
PAYLOAD
ATTRIBUTE1
ATTRIBUTE2
ATTRIBUTE3
ATTRIBUTE4
ATTRIBUTE5
among which TRANSACTION_TYPE, TRANSACTION_SUBTYPE,PARTY_SITE_ID,ATTRIBUTE1 are mandatory attributes. For inbound message, B2B enques the message to ECX_INBOUND queue with consumer name as b2buser, and the consuming application which is
XML Gateway in this case should use the same consumer name.
XML Gateway generates an OAGIS 7.x document, and there is a need to translate it to Edifecs XML before getting this processed in B2B as B2B mandates the incoming document to be Edifecs XML. B2B translates the Edifecs XML to native EDI using the inbuilt XEngine. To translate OAGIS to Edifecs XML use outbound call out and the
same is true in inbound case to translate the Edifecs XML to OAGIS document to be consumed by XML Gateway.
2. IP Queues : This approach used pre seeded queues IP_OUT_QUEUE and IP_IN_QUEUES with corresponding Delivery channel. Typical flow involves B2B Enques the message to IP_IN_QUEUE and BPEL Process consumes the message from IP_IN_QUEUE and send it to Ebiz suite using EBS adapter.
Refer the following Apps adapter documents which talks about various interface types for integrating with Oracle Applications:
http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28351/T430238T430241.htm
http://www.oracle.com/technology/products/integration/htdocs/ds_oracleas_ebs_adapter.pdf
http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28351/T430238T430340.htm
also refer various samples under 10.1.3.1\OracleAS_3\bpel\samples\tutorials\150.AppsAdapter
Posted by
Ramesh Nittur
at
11:08 PM
1 comments
Monday, April 14, 2008
Deployment in Oracle B2B
Refer to Chapter 13 on Creating and Deploying a configuration.
Deployment through Script
The following sql stmt makes the agreements available for deployment.
SQL> update tip_agreement_t set lifecyclestate='Approved';
It is possible to write a script encapsulating the following public API.
ip/setenv.bat
java oracle.tip.configuration.ConfigurationManager
-standalone <congif Name> -- To create configuration based on all approved agreement.
java oracle.tip.configuration.ConfigurationManager -standalone <configName> <approved agrmtName1> <approved agrmtName2>
-deploy <configuration-name>
-abort <configuration-name>
-discard <configuration-name>
-retire <configuration-name>
-reactivate <configuration-name>
-queryName <configuration-name>
-queryStatus <configuration-lc-state>
-quiesce <configuration-name>
-quiesce allActive
Posted by
Ramesh Nittur
at
12:49 AM
1 comments
Labels: Deployment-Config
Thursday, April 10, 2008
Rosettanet Exception handling in B2B
Exception/Error handling in Rosettanet
RosettaNet is an e-business standard based on XML which is predominently used in the High Tech Industries for the supply chain management needs. This standard talk about rapid, reliable process interaction between different trading Partner, and also about transport and packaging requirement.
Partner Interface Process (PIP) defines the sequence of steps required to execute a business process between two trading partners. PIPs are specialized, XML-based dialogs that define the structure, sequence of steps, role activities, data elements, values, and value types for each business document message exchanged between trading partners.
The RosettaNet Implementation Framework (RNIF) is a collection of specifications used to implement message exchange between trading partners over the Internet. It covers Transport,Packaging,Authorization,Authentication,Encryption and
Nonrepudiation.
Rosettanet Specification refers to two types of errors, in-band and out-of-band.
1. in-band error : This occurs during collaboration such as General exception and Receipt Acnowledge exception.
2. out- of -band error : This ocurs outside collaboration resulting in generation of 0A1. For e.g failure related to
time to perform, retry count etc. Currently B2B is not supporting this.
Exception scenarios
1. Outbound PO Processing : Back end application send the message to B2B, for any exception B2B sends the B2B Exception to Back end application.
2. Inbound PO Processing : For any message which failed during inbound PO processing, B2B sends RNIF exception to trading partner, Trading partner in turn has to consume the RNIF exception and generate a B2B exception corresponds to it.
3. Outbound POA Processing :For any message which failed during outbound POA processing, B2B sends RNIF exception to trading partner and B2B Exception to Back end application. Trading partner consumes the RNIF exception and sends B2B Exception to Back end application.
4. Inbound POA Processing :For any message which failed during inbound POA processing,B2B sends B2B Exception to Back end application.
Posted by
Anonymous
at
11:49 PM
0
comments
Labels: RosettaNet
Tuesday, April 8, 2008
PGP Encryption Support using External CallOut
Posted by
Ramesh Nittur
at
5:42 AM
1 comments
Labels: CallOut
Flexible File Naming convention in File and FTP transport
File name or directory name for File/FTP transport can be customized using various MACRO provided as part of Transport Parameters.
Use case : Consider a scenario where in the outbound file name has to be created based on
a. From Party
b. To Party
c. DocTypeName
d. DocTypeRevision
e. ActionName
Solution : There is an introduction of new File name format and Directory name format as transport parameters in File/FTP protocol.
e.g filename Format to be specified as %FROM_PATRY%_%TIME_STAMP%
The format for these parameters can be constructed by using following macros
Inbound:
%FROM_PARTY% (Sender Trading Partner Of Inbound Message)
%TO_PARTY% (Receiver Trading Partner Of Inbound Message)
%DOCTYPE_NAME%
%DOCTYPE_REVISION%
%ACTIONNAME%
Outbound
%FROM_PARTY% (Sender Trading Partner Of Outbound Message)
%TO_PARTY% (Receiver Trading Partner Of Outbound Message)
%DOCTYPE_NAME%
%DOCTYPE_REVISION%
%ACTIONNAME%
%MSG_ID%
%TIMESTAMP%
Note : configure the file name format as filename_format transport protocol parameter while defining the Delivery channel. You need to apply latest patch 7322333 on top of 10.1.2.3. For internal delivery channel use internal filename format parameter.
e.g filename format %FROM_PARTY%_%TIMESTAMP%.dat
P.S It is always advisable to apply the latest patch and not the patch mentioned in this post
Posted by
Ramesh Nittur
at
5:41 AM
0
comments
Labels: Generic File
Wednesday, March 26, 2008
Correllation and Conversation in EMBS
There is a need to set the Following tip.property in implement Correllation and conversation in EBMS.
oracle.tip.adapter.b2b.ebms.deliverConvId=true
oracle.tip.adapter.b2b.ebms.TreatMsgWithReplyToMsgIDAsReq=true
Posted by
Ramesh Nittur
at
4:00 AM
0
comments
Labels: EBMS
Wednesday, March 19, 2008
Ping Pong In EBMS
It is a popular practice in EBMS world to exchange the ping-pong messages to ensure that the remote Messange Handler Service which is essentially a remote trading partner in B2B world is up and functioning well.This is done by sending a PING message and the remote MSH responds it with a PONG message.
A Message Service Handler Ping (MSH Ping) message consists of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:
MessageHeader element
TraceHeaderList element
ds:Signature element
The TraceHeaderList and the ds:Signature elements MAY be omitted.
The MessageHeader element MUST contain the following:
a. From element that identifies the Party creating the MSH Ping message
b. To element that identifies the Party that is being sent the MSH Ping message
c. CPAId element
d· ConversationId element
e· Service element that contains: uri:www.ebxml.org/messageService/
f· an Action element that contains Ping
The message is then sent to the To Party.
Once the To Party receives the MSH Ping message, it MAY generate a Message Service Handler Pong (MSH Pong)message consisting of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:
MessageHeader element
TraceHeaderList element
An Acknowledgment element
An OPTIONAL ds:Signature element
The TraceHeaderList, Acknowledgment and ds:Signature elements MAY be omitted.
The MessageHeader element MUST contain the following:
a. From element that identifies the creator of the MSH Pong message
b· To element that identifies a Party that generated the MSH Ping message
c· CPAId element
d· ConversationId element
e· Service element that contains the value: uri:www.ebxml.org/messageService/
f· An Action element that contains the value Pong
g· RefToMessageId that identifies the MSH Ping message.
Parties who receive a MSH Ping message SHOULD always respond to the message. However, there is a risk that some parties might use the MSH Ping message to determine the existence of a Message Service Handler as part of a security attack on that MSH. Therefore, recipients of a MSH Ping MAY ignore the message if
they consider that the sender of the message received is unauthorized or part of some attack.The decision process that results in this course of action is implementation dependent.
Implementation of Ping-pong in Oracle B2B.
1. Create a business action and Document Type as Ping.
2. While creating the Document type use the following parameter.
Document Routing ID: "EBMS_PO"
Service: "urn:oasis:names:tc:ebxml-msg:service"
Identification Expression (XPath) for XML Document: "/*[local-name()='Ping']"
3. Create an Agreement after creating Operational Capability corresponding
to Ping.
4. Enque the message with doc type and revision as Ping and 1.0.
5. The responding pong message is found in the wiremessage-report.
Posted by
Ramesh Nittur
at
10:41 PM
0
comments
Labels: EBMS