Wednesday, August 24, 2011

To access Oracle web service with wsse: header

 

I had the issue where I need to access the oracle service from my console application.where wsse header goes as wrapper around a Http request.So for that I modified my app.config file for building my wsse header in the endpoint request

Ex:

<endpoint address="http://ltc5finapp06.intlab.us.ceridian.hrs:8012/webservices/SOAProvider/plsql/xxpjtito01_procsorderapi_pkg/"
       binding="basicHttpBinding" bindingConfiguration="XXPJTITO01_PROCSORDERAPI_PKG_Binding"
       contract="OracleService.XXPJTITO01_PROCSORDERAPI_PKG_PortType"
       name="XXPJTITO01_PROCSORDERAPI_PKG_Port" >
       <headers>
         <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
           <wsse:UsernameToken>
             <wsse:Username>biztalk</wsse:Username>
             <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">b1ztalk</wsse:Password>
           </wsse:UsernameToken>
         </wsse:Security>
       </headers>
     </endpoint>

This helps me to get the response back from oracle.

Now if you want to use this in biztalk make sure to wrap this header information in wcf custome header.

I first build the header

xmldoc.LoadXml(""+"<wsse:Security mustUnderstand='1' xmlns:wsse=\'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\'>" +
          " <wsse:UsernameToken>" +
             "<wsse:Username>biztalk</wsse:Username>" +
             "<wsse:Password Type=\'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText\'>b1ztalk</wsse:Password>" +
           "</wsse:UsernameToken>" +
           "</wsse:Security> " +"");
SOADoc.LoadXml("" + "<ns0:SOAHeader xmlns:ns0=\"http://xmlns.oracle.com/apps/ont/soaprovider/plsql/xxpjtito01_procsorderapi_pkg/\"><ns0:Responsibility>ORDER_MGMT_SUPER_USER</ns0:Responsibility><ns0:RespApplication>ONT</ns0:RespApplication><ns0:SecurityGroup>STANDARD</ns0:SecurityGroup><ns0:NLSLanguage>american</ns0:NLSLanguage><ns0:Org_Id>82</ns0:Org_Id></ns0:SOAHeader>" + "");

Then invoke that in wcf custom header

InboundRequest(WCF.OutboundCustomHeaders)="<headers>"+xmldoc.OuterXml+ SOADoc.OuterXml + "</headers>";

Hope this will help those who have the similar problem

Thanks

Sam

Thursday, July 28, 2011

How To get cool domain name

Creative Domain Names

Finding a cool Creative domain name for your blog or your business website is very tough these days. Many of them buy the coolest domain names and they resale for 100′s of dollars . This is the best business :) . But how to find the domain name?? if we are breaking ourheads to find the best name , even though we get a best name but the domain name won’t be available . So many people like me come across this situation. So am providing here List of  web apps, sites, where we can find the best domain name easily and quickly :) .

1.Domize

Creative

Domize is Best app to Hunt for the best domain names. The results are shown instantaneously and your search queries are encrypted over SSL for Privacy and Secruity. It has advance features like we can check the domains are ready for sale, expiry date,and availability.

  • Multiple TLD: Yes
  • Price Comparision: Yes
  • Domain Name Suggestion: Yes

2. Domparison

Domparison is  a domain name price  Comparison and Search Engine. This web app compare the prices of  your suggested domain name across various registrar’s. Thus you can choose the cheapest price and saves lots of money .

  • Multiple TLDs- Yes
  • Price Comparision-Yes
  • Domain Name Suggestion-No

3.Bust A Name

bust a name

Bust a name is a web app suggests domain names,register domains and helps in managing them. The apps supports linguistic data with a search of thousands of domains the keywords you submit and check for the availability.

  • Multiple TLDs- Yes
  • Price comparison – yes
  • Domain name suggestion – Yes

4.Domainr

domainr

Domainr is another best web app to find the domain name quickly . When you type a keyword at the search box the results will be displayed with all probability of available names.If your looking for an non-Latin internationalized domain name , you can enter characters with accents or other diacritics  and even scripts like Arabic,Hindi, Chinese ,Arabic.

  • Multiple TLDs- Yes
  • Price Comparision- No
  • Domain Name Suggestion-Yes

5.Instant Domain Search

instant domain search

Instant domain name supports only .com, .org .net domain names and its availability.The web app is very fast and the main limitation with the web app is new TLDs are not supported.

  • Multiple TLDs- yes but limited to three classic TLDs
  • Price Comparison- No
  • Domain Name Suggestion- yes

6.Domain Typer

domain typer

Instant search of the domain names when you start typing the keywords for domain name and this web app doesn’t store your results in its database.

  • Multiple TLDs- Yes
  • Price Comparison- NO
  • Domain Name Suggestions- Yes

7.DomainsBot

domains bot

Domains Bot is best one many of my friends suggested me to finding a best domain names. The web apps display both the available and unavailable domain names also.

  • Multiple TLDs- Yes
  • Price comparison- Yes
  • Domain Name Suggestion-Yes

8.DNZoom

DNZoom

DNZoom also search the domain names and have a additional features like importing domain name from your current registrar and domain parking accounts.Manage all domains from a single Dashboards.

  • Multiple TLDs- Yes
  • Price Comparison- yes
  • Domain Name Suggestion- yes

9.Geek.Name

geek.name

Geek.name is a tool for powerful users who want lots of variables and criteria to be included in their domain search.It suggests best domain name which are available.Display the suggestion based on your search.

  • Multiple TLDs- yes
  • price comparison- No
  • Domain Name Suggestion – yes

10. Domain Hacks

domian hacks

Its a new way to find unique domain names. you can have a cool domain name like del.icio.us

  • Multiple TLDs- yes
  • Price Comparison – No
  • Domain name Suggestion- yes

11.Moniker

moniker

Monkier provides best user-friendly ways to make domain management easier and more efficient.Easy to use domain management tools.you can register domain name with them too.

  • Multiple TLDs- yes
  • Price comparison- No
  • Domain Suggestion- yes

12. NXdom

nxdom

NXdom is a Domain search engine that specializes in short domain names. Its database consists of millions of DNS results you can search the domain name by inserting prefix and suffix and sort the results by length.

  • Multiple TLDs- yes
  • Price comparison- No
  • Domain Name Suggestion-yes

13.Wordoid

wordoid

Its another domain search engine that generate domain suggestions that sounds natural in varying  degrees in five different languages.

  • Multiple TLDs- yes
  • Price comparison- yes
  • Domain Name Suggestion -yes

14.Domain Exposer

domain exposer

Domain exposer helps to find the available domain names easily based on the keywords and you can specify the length and other parameters. It shows lot of results in a single page .

  • Multiple TLDs- yes
  • Price Comparison- NO
  • Domain Name Suggestion- Yes

15. Name Station

name station

Name station helps to generate hundreds of random phonetic names, enter their own keywords or the preset wordlists categorized suffixes and prefixes . Registered users can get access to advance features.

  • Multiple TLDs- Yes
  • Price comparison- NO
  • Domain Name Suggestion-yes

16.Name Boy

Nameboy offers Unique Suggestions. There is a special feature called cart. so you can track the domain name you have planned to buy and later you can buy it .

  • Multiple TLDs- yes
  • Price comparison- No
  • Domain Name Suggestion- yes

17.Dot-O-Mator

dot-o-mator

Get the domain name suggestion by typing the “words” over there  and choose some endings ( or entire your own). Then click on combine them. you can find the domain is available or not then save it on your scratchboard .

  • Multiple TLDs- yes
  • Price comparision- NO
  • Domain Name Suggestion – Yes

18.PCNames

Based on your query, pcanmes checks the domain instantly .com, .net, . org ,  .info , .biz , .us , .mobi , .name, domain names are available.The app stores your history so that you can look up for later too .

  • Multiple TLDs- yes
  • Price Comparison-yes
  • Domain name Suggestion-yes

19.Suggest Name

suggest name

Suggest name have same features like  Dot-o-mator have best user interface. Enter the prefix and suffix and remain work is done by app , find the best available domain names.

  • Multiple TLDs- Yes
  • Price Comparison- No
  • Domain Name Suggestion- yes

20.Shout Domains

Shout domains is a instant domain search engine. There are two separate tools to combine  and crunch names based on the words you specify.

  • Multiple TLDs- Yes
  • Price comparison-No
  • Domain Name Suggestion-yes

21.Who.is

Its the best service i used . we can check the domain name which are available  and buy them online only. Premium domains are also shown up too.

  • Multiple- TLDs- Yes
  • Price comparison- No
  • Domain Name Suggestion- yes

Wednesday, July 27, 2011

One more list for finding domain name

1. Dislexicon – Takes common words and adds suffixes and prefixes. It even gives you the meaning. This site is great for finding short domain names that look like they could be real words.

2. JustDropped – This site lets you search for domain names that have recently expired. You get a few searches for free with limited results. I’ve found that the free searches are usually adequate for my needs.

3. Word Mixer – This one lets you enter up to five words which are mixed up into new, semi-pronouncable words. The same website also has a couple other tools that are useful such as the random words tool which is hit or miss, and the mixer seedspage.

4. WordFinder – This is actually a tool for crossword puzzles, but it can also be very useful for finding a domain name.

5. DomainsBot – This search engine is geared specifically towards finding a domain name. It works best if you’re looking for a compound-word domain rather than an invented word.

6. Online Generators – If all else fails, sometimes you’ll find a gem using one of these online generators. This is usually a last resort for me though, they tend to suck up your time without out producing much.

Wednesday, July 6, 2011

XML Pipeline schema Debatching


I am posting it not for you guys also for myself because of my bad memory.. Debatching xml file without using orchestration was  a tough and tricky job and already pulled half of my hair for this

:-)..Hope it will help the biztalk community

1.
Create a receive schema structure like this

ReceiveSchemaStructure

2.Now change the root node type in the schema

ChangeRootNodeTypeName

3.Set the envelope in root node

SetEnvelope

5.Click on Employee and set the Body XPath

SetBodyXpath

6.Assign the Record the body part of the message

assignBatchRecord

7.Create a body of the message that you are suppose to debatch

RecordBody

 

8.Create the orchhestration and assign the body part message in number 7 in the receive shape

SampleOrchestration

9.Use XML Receive pipeline in the adapter .

 

Hope this will create separate message

image

 

Cheers

Sam

Thursday, January 13, 2011

BizTalk Assembly copy error

Error 1 Unable to copy file "obj\Debug\Ceridian.Fin.Ora.Lockbox.Pipeline.dll" to "bin\Debug\Ceridian.Fin.Ora.Lockbox.Pipeline.dll". The process cannot access the file 'bin\Debug\Ceridian.Fin.Ora.Lockbox.Pipeline.dll' because it is being used by another process. Pipeline

It basically happens to me bacause i grab it from TFS and the dll is locked to copy.

Solution:

go to your visual studio application properties
2.Select build events
3.copy this code
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

to prebuild events

Now deploy again and see whether you can deploy or not.

BizTalk Assembly Deployment Error

Error 11 Assembly "Ceridian.Fin.Ora.Lockbox.Orchestrations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16d5a0fa6ced9357" references the following assemblies that must be deployed before deploying this assembly:
Assembly "Blogical.Shared.Adapters.Sftp.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c488c30459f75739" 0 0

Solution:
If you get a situation to deploy the schema assembly from application.It doesn't deployed properly because it needs to be management database.So make sure to add this schema assembly as biz talk assembly
1.Open BizTalk administration consol
2.right click and add assembly
3.select the assembly you want to deploy from local folder and select all the check boxes

once you add the assembly go to resources section in biztalk administration console to see whether the assembly exist or not.Now go to your visual studio biztalk application and deploy again the problem will be solved

Friday, December 3, 2010

Insert data in relational database from Multi record complex schema

I have mapped complex EDi schema to SQL database by looping in orchestration.Thats the usuall process i was following till WCF sql came into picture.Suppose you have 2 relational database with primary and foreignkey relationship and you have a complex schema with multiple batch of records.How could we solve this kind of issue without using loop shape in orchestration

Let me explain the issue again:
I have 2 tables like this below



Now i have the source schema look like this




I used following steps to solve the above issue.Hope it may help someone.

1.Create the store procedure for both of tables
1st create the table type and then create the stroed procedure and pass parameter as tabletype

create type BizTalkSWRequestTableType as Table
(
RequestId int not null,
invocationPoint nvarchar(50),
requestType nvarchar(50),
claimNumber nvarchar(50),
treatmentsettingscode nvarchar(50),
memberID nvarchar(50),
memberName nvarchar(50),
lastName nvarchar(50),
firstName nvarchar(50),
middleName nvarchar(50),
dateOfBirth nvarchar(50),
clientCode nvarchar(50),
EnrollmentgroupID nvarchar(50),
EnrollmentgroupName nvarchar(50),
EnrollmentplanCode nvarchar(50),
EnrollmenteffectiveDate nvarchar(50),
EnrollmentterminationDate nvarchar(50),
EnrollmentsubscriberID nvarchar(50),
EnrollmentisSubscriber nvarchar(50),
FacilityexternalID nvarchar(50),
FacilityproviderName nvarchar(50),
Facilityrole nvarchar(50),
FacilitytypeCode nvarchar(50),
FacilityprimarySpecialtyCode nvarchar(50),
FacilitynationalProviderID nvarchar(50)

);


create type BiztalkSWInpatientROTableType as Table
(
RequestId int not null,
InpatientOutcomeID nvarchar(50) not null,
statuscode nvarchar(50),
reasoncode nvarchar(50),
bedtypecode nvarchar(50),
certifiedUnits nvarchar(50),
fromDate nvarchar(50),
throughDate nvarchar(50),
standardRate nvarchar(50),
negotiatedRate nvarchar(50)

);

drop procedure InsertPatientDetails

create procedure InsertPatientDetails
(
@PatientRequest as BizTalkSWRequestTableType readonly,
@patientRvwOut as BiztalkSWInpatientROTableType readonly
)
as
begin

insert into BizTalkSWRequestTable
(
RequestId ,
invocationPoint ,
requestType ,
claimNumber ,
treatmentsettingscode ,
memberID ,
memberName ,
lastName ,
firstName ,
middleName ,
dateOfBirth ,
clientCode ,
EnrollmentgroupID ,
EnrollmentgroupName ,
EnrollmentplanCode ,
EnrollmenteffectiveDate ,
EnrollmentterminationDate ,
EnrollmentsubscriberID ,
EnrollmentisSubscriber ,
FacilityexternalID ,
FacilityproviderName ,
Facilityrole ,
FacilitytypeCode ,
FacilityprimarySpecialtyCode ,
FacilitynationalProviderID
)
select
RequestId ,
invocationPoint ,
requestType ,
claimNumber ,
treatmentsettingscode ,
memberID ,
memberName ,
lastName ,
firstName ,
middleName ,
dateOfBirth ,
clientCode ,
EnrollmentgroupID ,
EnrollmentgroupName ,
EnrollmentplanCode ,
EnrollmenteffectiveDate ,
EnrollmentterminationDate ,
EnrollmentsubscriberID ,
EnrollmentisSubscriber ,
FacilityexternalID ,
FacilityproviderName ,
Facilityrole ,
FacilitytypeCode ,
FacilityprimarySpecialtyCode ,
FacilitynationalProviderID
from @PatientRequest

insert into BiztalkSWInpatientROTable
(
RequestId ,
InpatientOutcomeID ,
statuscode ,
reasoncode ,
bedtypecode ,
certifiedUnits ,
fromDate ,
throughDate ,
standardRate ,
negotiatedRate
)

select
RequestId ,
InpatientOutcomeID ,
statuscode ,
reasoncode ,
bedtypecode ,
certifiedUnits ,
fromDate ,
throughDate ,
standardRate ,
negotiatedRate

from @patientRvwOut
end

2.Now generate the schema from the addGenerated wizard



3.Now you will see 2 schemas and 1 binding file
a.InsertInPatientDetailsTableType.dbo.xsd
b.InsertInPatientDetailsTypedProcedure.dbo.xsd
c.WcfSendPort_SqlAdapterBinding_Custom.bindinginfo.xml

4.Now create the maps from sources schema and InsertInPatientDetailsTypedProcedure.dbo.xsd



5.Now as usual process create the orchestration and look at the operation name in sql request response logical port.In my case it is "SQLReqResp"



6.make the application strong named and deploy the application and then in biztalk administration console from your application import the binding file "WcfSendPort_SqlAdapterBinding_Custom.bindinginfo.xml" that have been created by add adapter wizard


7.Look for WCF-sql port configuration and go to configure option and change the operation name there.



8.Now create the receive and send port and start the application.You will see the result in database.