Monday 12 December 2016

Oracle B2B - Part4


Oracle B2B - Part4

Steps to Configure Oracle B2B Specification \ Document Definition

In this post, I want to explain steps to create Oracle B2B Specification.
Oracle B2B Specification contains two documents. They are ".ecs" and ".xsd" files.
Follow below steps to configure EDI X12 4010 850 (ORDERS) document definition.

Visit Oracle B2B - Part3 to understand how to install Oracle Document Editor.

1. Download and Install Oracle Document Editor.
2. start document editor.
Double click on below file.
"<installation folder>\Oracle\Oracle Document Editor\SpecBuilder.exe"
3. In Document editor --> Start Page --> Click on New Guideline
4. In pop up, we have to select proper B2B specification. As per our requirement, we have to select EDI specification --> X12 --> V4010 --> 850 Document Specification --> Click Finish button.




5. We have to do required changes in EDI document segments. 

6. Save the B2B Definitions Documents (.ecs is the extension)


7. Now we need to generate .xsd file with the help of ".ecs" file.
open .ecs file --> File Menu --> Export (NOTE: make sure .ecs file open in Document Editor) 



Now we can see .ecs and .xsd files.

We can use these two documents in B2B console to define trading partners and agreements and in Oracle SOA projects to process B2B XML format documents. Will discuss, about this in upcoming posts.




Thursday 8 December 2016

Oracle B2B - Part3



Oracle B2B - Part3

Oracle Document Editor Installation


Please go to Oracle B2B - Part2 before reading Part3

1. Go to this URL to download binaries for Oracle Document Editor.
2. Login with oracle user and password and accept required license.
3. Choose operating system.
4. Expand  "Recommended Install Process".
5. Now download required binaries as shown in below image.
6. Now, we can see 4 zip files in downloads folder.
NOTE: B2B Document Editor setup required binaries are packed into four parts. Each part has set of B2B document specifications. If we install all four parts then all specifications are available in Document Editor IDE. But we should act as required, no need to install all B2B Document specifications.

7. Unzip each zip file into one individual folder.
NOTE: 
9. Open disk1 folder --> double click on "install" file.
10. we have two options to install document editor.
               a. Install document editor with required B2B document specifications.
               b. In only document editor and later we can install required B2B document specifications.
NOTE: In this post, I want to show you how to install document editor and required B2B document specifications individually.
11. Select proper folders to install B2B Editor and B2B Standards. We can select user defined folder for this installation.
12. Here we need to select what are the specifications we want to install. Select the checkbox "Perform setup operation in Silent mode".
13. Uncheck Standards option if you don't want to install all B2B specification with the document editor.

NOTE: if you don't select any specification, later you need to install required B2B document specification.

14. Run the wizard up to finish button.

15. Now we need to install required B2B Document Specifications by following below steps.
I want to install X12 documents. X12 documents available in disk4 folder. Go to disk4 folder (disk4\Standards\X12) --> run the installer file to install X12 documents.

16. Start Oracle Document Editor (C:\B2B\Oracle\Oracle Document Editor\SpecBuilder.exe)




Wednesday 7 December 2016

Oracle B2B - Part2

Oracle B2B

Part2

Please go to Oracle B2B - Part1 before reading Part2

In this post, I want to introduce few sample B2B documents from different standards.
As we discussed in B2B Part1, there are different standards are in use for different B2B transactions.

Ex: Purchase Order will be called and identified as 850 in EDI X12 standard, ORDERS in EDIFACT standard and 3A4 in RosettaNet standard.
Few more examples in below table.







Reference:
Go through below reference list to find more B2B standards / documents.
EDI X12 complete list of transactions
EDIFACT complete list of transactions
RosettaNet complete list of transactions

Few Important points to be noted.

  • B2B system will validate and convert B2B standard document into XML format and XML format to B2B standard documents.
  • B2B standards supports NonXml and XML format.
Ex: EDI X12 and EDIFACT B2B document will be in NonXML format and RosettaNet B2B documents are in XML format. Here i am providing three examples how purchase order looks in three differentt standards.

NOTE: all the values in below documents are just dummy fields.

Sample EDI X12, 004010 version  850(Purchase Document) Standard:



Sample EDIFACT, 97A version  ORDERS (Purchase Document) Standard:



Sample RosettaNet, V0200 version  3A4 (Purchase Document) Standard:

Oracle B2B - Part1

 

Oracle B2B

Part1

In this post, I want to share knowledge required for Oracle B2B learners. I will try to make it as simple as possible with very neutral terminology.
The B2B system helps an Organization who wants to conduct e-business with other organizations like their suppliers and customers. In other words, I can say B2B helps an organization to process O2C and P2P transactions in a standard way. B2B system will use B2B standard documents for inbound or outbound transactions. Here few example B2B documents are EDI X12, EDIFACT, RosettaNet etc.

I will use below scenario to make you understand B2B.
"Dell Inc" is an organization wants to conduct e-business with "Intel Corporation" and "Oracle Corporation".
In Dell point of view, Intel Corporation is a supplier and Oracle Corporation is a customer. So we should have P2P flow between Dell and Intel Corporation and O2C flow between Dell and Oracle Corporation. 
Example: Oracle will send a purchase order to Dell Inc to buy 1000 laptops(This is a sale order for Dell). To assemble 1000 laptops, Dell needs 1000 processors. Assume, In Dell warehouse only 500 processors are available. Now Dell will send a PO to Intel for 500 I7-Processors.

Here I want to list few basic keywords which we use regularly in Oracle B2B.
  1. Host Partner
  2. Trading Partner
  3. Trading Partner Agreement
  4. B2B Standards / B2B Document
  5. Listening Channel

Host Partner:

Organization who is conducting e-business is called as Host Partner. In our scenario, Dell Inc will be treated as Host Partner because Dell Inc wants to conduct e-Business with Intel and Oracle.

Trading Partner:

A trading partner is an organization that conducts e-business with other organizations. Intel and Oracle are the Trading Partners in our scenario.

Trading Partner Agreement:

A Trading Partner Agreement (TPA) is defined as a definitive and binding agreement between Host Partner and trading partners and vice-versa. In other words, we can consider TPA is a contract between two business profiles to use a specific message encoding protocol or a specific transport protocol while exchanging B2B message with each other. In  agreement, we have to configure the direction of transaction and trading partner identifiers. Without configuring agreements, we can't do any inbound or outbound transaction through B2B system.

As per our scenario, I need to configure two agreements. One with Oracle and other with Intel. Agreement with Oracle which allows Dell to accepts PO's will be treated as INBOUND agreement and  agreement with Intel  which allows Dell to sends PO's will be treated as OUTBOUND agreement. As per agreement configuration in our B2B, it never sends PO's to Oracle and it never accepts PO's from Intel. So as per agreement configuration transactions will be decided.

B2B Standards / B2B Document:

In e-Business, organizations have to interchange different transactions(purchase order request, purchase order change request, shipment notification, invoice etc). So the data and data format in a transaction should be understandable for both the organizations.  ISO, UN/CEFACT, OASIS, OAGi are the recognized standard bodies to write and approve B2B Standards like EDI X12, EDIFACT, RosettaNet etc. Some standards like EDI X12 and EDIFACT are NonXml standards and RosettaNet is an XML standard. Of course, we can define our own standards as per our organization and partners  business requirement. There are multiple consortiums formed to make customized B2B standards. RosettaNet is the one example, written by one consortium.

Listening Channel:

Channel is the way to communicate with B2B system. Here we have two types of channels. 
  • External channel : A channel which helps to communicate between trading partner and B2B system.
  • Internal Channel : A channel which communicates between B2B System and backend systems like any integration systems or ERP systems. 
We use channels for inbound and outbound communications.
Channel Ex : File Channel, FTP Channel, JMS, EMail, AQ etc

Tuesday 29 November 2016

JCA Adapters Tips & Tricks


Oracle Fusion Middleware

JCA Adapters Tips & Tricks

In This post, I want to list important JCA adapter properties, which are really helpful in real-time projects.

Assumption: In this post, when I use a word called "CLUSTER", it contains one Admin server and two SOA Managed servers. Two Managed servers which are running, in two physical machines.

File Adapter:  

Tip1: 

If we are using File polling Adapter in clustered SOA domain then we have to use HA File adapter JNDI (eis/HAFileAdapter).
We should edit one property in HA File adapter JNDI. That is "controlDir" property in HAFile adapter JNDI as shown in below image.
image1(HA File Adapter Properties):
 
image2(HA File Adapter Properties):
If we don't configure controlDir property, then two SOA managed server will poll one file two times. To avoid duplicate file processing we have to configure controlDir property.  
We can expect same behavior and configuration for HA FTP Polling adapter.

NOTE: controlDir property value (path) should be mounted between two physical machines as shared folder.
image3(HA FTP Adapter Properties):  
 

Tip2:  

By default File Adapter will read multiple files from inbound folder in one polling. 
Actually there is no limit that how many files should be processed in one polling.
If you want to control total number of files to be processed in one polling then we have to set below two properties in JCA file (Open file polling adapter .jca file and manually we have provide these properties).
<property name="SingleThreadModel" value="true"/>
<property name="ThreadCount" value="4"/>


As per the above example, 4 threads will be created and only 4 files will be processed in one polling

FTP Adapter

Tip1: 

By default FTP polling adapter will create archive file in local folder of SOA server physical machine. If we want to archive FTP file in FTP location then we have to set below FTP adapter jca property.

NOTE: But we cant set this property in design time(jca file in JDeveloper). It is possible to set only at run time in enterprise manager(jca service adapter properties in EM).
Navigation: develop SOA project by using FTP adapter -->deploy SOA project --> login into EM --> single click on our SOA project --> scroll down dashboard tab --> click on FTP polling adapter --> properties tab -->
a. click add button -->  add new property --> "UseRemoteArchive" as "true"
b. fileArchivePath --> path should be available in FTP location.

Database Adapter:

Tip1:

In SOA Clustered environment, if we configure DB polling adapter then we have to enable singletone property in .jca file as below.If we don't configure this property then DB polling adapter(2 SOA managed servers) will try to read duplicate records from source table. 


Tip2:
Few important jca properties in DB polling adapter.
Database Rows Per XML Document: <property name="MaxRaiseSize" value="6"/>
Database Rows Per Transaction: <property name="MaxTransactionSize" value="15"/>
DB adapter will not process all records as one unit. DB adapter will debatch table into sub parts with the help of above properties.

"TABLE" will be divided into sub parts, each sub part is called as "TRANSACTIONS"
"TRANSACTION" will be divided into sub parts, each sub part is called as "XML Documents"
Each "XML Document" will be processed as one SOA instance.

If we configure above two properties in a DB polling adapter then we can expect below behaviour.
Ex: Assume, DB Table has 50 records, MaxTransactionSize set as 15 and MaxRaiseSize set as 6.
Now the way of execution is as below.

Table with 50 records will be divided into 4 transactions.
transaction1 has 15 records
transaction2 has 15 records
transaction3 has 15 records
transaction4 has 5 records (observe only 5 records in last transaction)  

Now TRANSACTIONS should be divided into XML Documents.
Transaction1 devided into 3 XML Documents.
            XML Document1 has 6 records
            XML Document2 has 6 records
            XML Document3 has 3 records (Observer only 3 records in last XML Document.)         
Transaction2 devided into 3 XML Documents.
            XML Document1 has 6 records
            XML Document2 has 6 records
            XML Document3 has 3 records (Observer only 3 records in last XML Document.) 
Transaction3 devided into 3 XML Documents.
            XML Document1 has 6 records
            XML Document2 has 6 records
            XML Document3 has 3 records (Observer only 3 records in last XML Document.)  
Transaction4 devided into 1 XML Documents.
            XML Document1 has 5 records (Observer only 1 XML Document with 5 records.)

Finally, above table will be divided into total 10 sub parts and we are calling these sub parts as XML Documents. As i mentioned above 10 XML Documents will be processed as 10 SOA instances.

NOTE: Here very important point we need to observer. All these 10 SOA instances will be processed parallel in one polling.

If you don't want to process all XML Documents in one polling then we can control processing behavior by setting below property in .jca file.
 <property name="NumberOfThreads" value="1"/>
If Value is 1, it means only one XML Document  will be processed in one polling. 10 XML Documents will be processed in 10 sequential polling's.

  
NOTE: If you like this post or if you have any unresolved jca properties, feel free to comments here.