Tuesday, March 13, 2018

Automation / Integration components (artifacts) and their capabilities


Business automation is nothing but it enables to automate enterprise business processes, services and applications across enterprise as well as business partner and integrates them together so that data flows in near real time manner with less human intervention.

On-ramp / Inbound (Incoming Messages / data)
1. Adapters / Connectors
• FILE
• FTP / SFTP
• HTTP/S (SOAP/ WCF / REST / GET/POST etc…)
• QUEUING (MSMQ, MQSERIES, RABIT MQ etc..)
• CLOUD CONNECTOR
• EMAIL (POP3)
• SHAREPOINT
• LOB (DB2, MAINFRAME, CRM, SAP CONNECTORS
• DATABASE NATIVE CONNECTORS
• OUT OF BOX ADAPTERS FROM THIRD PARTY
2. Data format / Message
• XML
• All EDI standards(X12 / EDIFACTS / HL7 / HIPAA etc…)
• Zip File
• Flat File (positional / delimited)
• Any format (pdf, image, Json, binary etc…).
•
Off-ramp / Outbound (Outcoming Messages / data)
3. Adapters / Connectors
• FILE
• FTP / SFTP
• HTTP/S (SOAP/ WCF / REST / GET/POST etc…)
• QUEUING (MSMQ, MQSERIES, RABIT MQ etc..)
• CLOUD CONNECTOR
• EMAIL ( SMTP)
• SHAREPOINT
• LOB (DB2, MAINFRAME, CRM, SAP CONNECTORS
• DATABASE NATIVE CONNECTORS
• OUT OF BOX ADAPTERS FROM THIRD PARTY
4. Data format / Message
• XML
• All EDI standards(X12 / EDIFACTS / HL7 / HIPAA etc…)
• Zip File
• Flat File (positional / delimited)
• Any format (pdf, image, json, binary etc…).

Enterprise Workflow / Orchestration
5. Process
• LONG RUNNING / ATOMIC
• CORRELATON / ACCOSIATIN BETWEEN APPLICATIONS
• HYDRATE / DEHYDRATE
• SYNCH / ASYNCHRONOUS
• BPMN STANDARD (work flow/process can be exported into other tech appian /tibco etc…)
• EXPOSED AS WEBSERVICES

Secure
6. Network
• SSL
• SFTP
• ANY STANDARD CERTIFICATE

7. Data
• DIGITAL SIGN - KEYS
• ENCRYPTION / DECRYPTON
• MASKING SENSITIVE FIELDS

8. Authentication
• BASIC
• INTEGRATED
• ESSO
• CERT KEYS
• OAuth


Business Activity Monitoring (BAM) 
9. Tools
• KPI AGANST PROCESSES / TRANSACTIONS
• DIFFERENT VIEWS  FOR DIFF STAKEHOLDERS
• GRAPHICAL CHARTS
• WEB PORTALS
• REAL TIME DATA
• ARCHIVED / HISTORICAL DATA
• SUPPORTS STAR SCHEMA / DIMENSIONAL TABLES

Operation Support / Reporting
10. Infrastructure (Server down. Cpu is up, no space etc…)
• MOM
• SCOM

11. Business / Application
• EMAIL – NOTIFY
• BAM
• ESB – EXCEPTION PORTAL (repair and resubmit in on-fly)
• EVENT LOGS
• CAPTURE IN DB
• SHAREPOINT

Enterprise Service Bus
• IT IS BUILD-IN ADDON COMPONENT FROM BTS 2013
• CONFIGURABLE THAN CODING
• RUNTIME RESOLVERS FOR ROUTING, MAPPING, ADAPTERS
• LOOSELY COUPLE AND ABSTRACTION ARCH

Business Rule Engine / Business Rule Policy
• FACT
• CREATE USER FRIENDLY VOCABULARIES FROM XML, .NET, DB
• RULES
• PUBLISH POLICY WITH RULES
• USED BY BUSINESS USER TO DEFINE BUSINESS RULES
• ON-FLY DEPLOYMENT WITHOUT INTERRUPTING APPLICATIONS
BizTalk Artifacts
• SCHEMA/FORMAT (it has all type of edi formats in repository)
• MAPS (it translates from one format into another
• DEPLOYMENT FRAMEWORK
• ADMIN CONSULT FOR viewing the different status of message and resume/repair them, start / stop the service & applications etc...)
• Orchestrations
• Pipelines
• Adapters
• Hosts
• Host Instances
Business Process Modeling 
• Pega, Appian
Content Management 
• SharePoint, documentum
Message Delivery 
• Guaranteed - MSMQ
• Reliable - RabbitMQ

Wednesday, January 3, 2018

Pass through REST API service for get method

Pass through REST API service for get method
Step 1
Create a two way receive location with receive pipeline which should promote the fields for get method query sting fields.
Send pipeline should be passthrutransmit
Step 2
Create send port with subscribe using filter with query string fields as exists.

Monday, August 21, 2017

Combining / Merging multiple repeated records from source into single record in destination with conditional through Biztalk map

1. Source xml as below
             Source xml has 6 records and we have to skip 4 & 6 records based on condition but the same time, all source records should be mapped into single record


2. Expected destination xml as below


3. Map

4. Inline XSLT Call Template details



5. we can use the different values for conditional instead of position

Monday, April 24, 2017

How to create different number ports/binding based on environments using BTDF 6


How to create different number ports based on environments using BTDF 6

Scenarios : when we integrate the systems specially with legacy systems,  we may face issues like each environment may have an own restrictions ( Number end points/connection may vary from each environment).  For example, Local may have 10 ports, TEST & QA may have 15 Ports and PRD may have 40 Ports.

We can achieve this kind requirements using the following steps.

  •  Create an Environment variable in SettingsFileGenerator.xml file as below
       Local
       TEST
       QA
       PRD
      * Note : Environment  variable / keyword won't be visible in SettingsFileGenerator.xml file but we       can see the values for that. 

  • Inside PortBindingsMaster file, use the xml pre-processor to detach the proper environment as below  
               
  • Create the ports/bindings based on Environment.

Thursday, December 30, 2010

DMZ & non-DMZ Configuration

Some companies may not wish to keep biztalk and sql server in DMZ. But they use a lot of http/s,soap adapters to receive the inbound messages. To implement this environment, We need to configure as follows
  • a seperate webserver -> DMZ
  • biztalk server -> non-DMZ
  • SQL server ->non-DMZ
  • use WCF or reverse proxy

Tuesday, April 20, 2010

BOM Remover for passthrough receive pipeline

If text file has utf-8 signature (BOM), we want to remove that without using disassambler, I used the following code
byte[] buffer = new byte[streamLength];//new byte[originalStrm.Length];

originalStrm.Read(buffer, 0, Convert.ToInt32(streamLength));


byte[] preamble = Encoding.UTF8.GetPreamble();

//239 187 191

if (preamble[0] == buffer[0] && preamble[1] == buffer[1] && preamble[2] == buffer[2])
{
System.Diagnostics.Trace.WriteLine(" file has utf-8 signature and removed ");

byte[] bufferN = new byte[streamLength-3];//new
Buffer.BlockCopy(buffer, 3, buffer, 0, streamLength - 3);
buffer = bufferN;
}
else
System.Diagnostics.Trace.WriteLine(" file does not have utf-8 signature");

 test