<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3846016387425756820</id><updated>2012-02-16T12:23:30.276-08:00</updated><title type='text'>Oracle SOA Best Practices</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bharat-soa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bharat-soa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bharat Somaraju</name><uri>http://www.blogger.com/profile/08941505355729441952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_c6GY-OtAvmI/SOuAGF4hLHI/AAAAAAAAABY/vj2AmPOSyM0/S220/bharat11.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3846016387425756820.post-5711995885517566685</id><published>2009-07-08T06:55:00.000-07:00</published><updated>2009-07-08T07:02:32.123-07:00</updated><title type='text'>Rollbacking EBS API's using BPEL</title><content type='html'>&lt;p&gt;We are performing multiple activities in sequence( updating a database using database adapter , calling a Oracle EBS API using oracle applications adapter and inserting data in a queue using JMS adapter or AQ adapter etc.) Now our requirement is to roll back all the activities if any of the above mentioned activity fails.Solution: To achieve this we need to configure our BPEL process for JCA-XA transactions. This is requires following set up:1. Set up JNDI name in oc4j-ra.xml and datasources.xml2. Make Changes in BPEL.xml to make your bpel to participate in transaction.For this we need to set the property transaction of BPEL and all partner links to participate as shown below.Scenario : We are performing multiple activities in sequence( updating a database using database adapter , calling a Oracle EBS API using oracle applications adapter and inserting data in a queue using JMS adapter or AQ adapter etc.) Now our requirement is to roll back all the activities if any of the above mentioned activity fails.Solution: To achieve this we need to configure our BPEL process for JCA-XA transactions. This is requires following set up:1. Set up JNDI name in oc4j-ra.xml and datasources.xml2. Make Changes in BPEL.xml to make your bpel to participate in transaction.For this we need to set the property transaction of BPEL and all partner links to participate as shown below.&lt;/p&gt;&lt;p&gt;&lt;?xml version = '1.0' encoding = 'UTF-8'?&gt;&lt; version =" '1.0'" encoding =" 'UTF-8'?"&gt;&lt;&gt;&lt; id="TestTransaction2" src="TestTransaction2.bpel"&gt;&lt;&gt;&lt; name="client"&gt;&lt; name="wsdlLocation"&gt;TestTransaction2.wsdl&lt;/partnerlinkbinding&gt;&lt; name="TestAccount"&gt;&lt; name="wsdlLocation"&gt;TestAccount.wsdl &lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; name="TestLocation"&gt;&lt; name="wsdlLocation"&gt;TestLocation.wsdl&lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; name="OA_Rollback"&gt;&lt; name="wsdlLocation"&gt;OA_Rollback.wsdl&lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; /partnerLinkBindings&gt;&lt;&gt;&lt; faultpolicy="TestConditionPolicy"&gt;&lt; /faultPolicyBindings&gt;&lt;&gt;&lt; name="transaction" encryption="plaintext"&gt;participate&lt; /property&gt;&lt; /configurations&gt;&lt; /BPELPrHere we need to make sure that fault policy applied to BPEL is not sending your BPEL to manual intervention. Because while sending the BPEL on manual intervention all the activities gets committed so rollback will not be possible in that case.Once above setup is done we are good to go. Now we have two possibilities:1. BPEL is not configured to catch the faults thrown.2. BPEL is configured to catch the faults thrown.BPEL is not configured to catch the fault thrown:In this case as soon as the fault is thrown , all the activities automatically gets rolled back.Disadvantage: Here the disadvantage is all the activities which are part of the transaction will get rolled back and we will not be able to see anything on BPEL console. It will appear that BPEL instance was never created.BPEL is configured to catch the faults thrownIn this we have to explicitly call the rollback. This can be done in two ways:1. Explicitly throwing the bpelx:rollbackFault&lt; name="Throw_1" faultname="bpelx:rollback"&gt;Once the error is caught by the fault handler we can do the activities we want to and after that we can throw the rollback fault which will result in to the rollback of all activities part of the rolled back transaction.In this case also disadvantage is we will not be able to see anything on BPELCONSOLE.2. Calling a procedure containing the rollback statement.This procedure will look like followingPROCEDURE "XXDPI_ROLLBACK" ASBEGINrollback;END;Now once the error is caught you can explicitly call this procedure to cause the rollback of statements executed on a particular database. So if there are multiple databases, you will have to multiple such procedures.Advantage: Advantage of this approach is that your BPEL instance still remains there and u can easily see what has actually happened and all the database statements executed also gets roll backed. &gt;&lt; id="TestTransaction2" src="TestTransaction2.bpel"&gt;&lt;&gt;&lt; name="client"&gt;&lt; name="wsdlLocation"&gt;TestTransaction2.wsdl&lt;/partnerlinkbinding&gt;&lt; name="TestAccount"&gt;&lt; name="wsdlLocation"&gt;TestAccount.wsdl &lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; name="TestLocation"&gt;&lt; name="wsdlLocation"&gt;TestLocation.wsdl&lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; name="OA_Rollback"&gt;&lt; name="wsdlLocation"&gt;OA_Rollback.wsdl&lt; /property&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt; /partnerLinkBinding&gt;&lt; /partnerLinkBindings&gt;&lt;&gt;&lt; faultpolicy="TestConditionPolicy"&gt;&lt; /faultPolicyBindings&gt;&lt;&gt;&lt; name="transaction" encryption="plaintext"&gt;participate&lt; /property&gt;&lt; /configurations&gt;&lt; /BPELPr&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Here we need to make sure that fault policy applied to BPEL is not sending your BPEL to manual intervention. Because while sending the BPEL on manual intervention all the activities gets committed so rollback will not be possible in that case.Once above setup is done we are good to go. Now we have two possibilities:1. BPEL is not configured to catch the faults thrown.2. BPEL is configured to catch the faults thrown.BPEL is not configured to catch the fault thrown:In this case as soon as the fault is thrown , all the activities automatically gets rolled back.Disadvantage: Here the disadvantage is all the activities which are part of the transaction will get rolled back and we will not be able to see anything on BPEL console. It will appear that BPEL instance was never created.BPEL is configured to catch the faults thrownIn this we have to explicitly call the rollback. This can be done in two ways:1. Explicitly throwing the bpelx:rollbackFault&lt; name="Throw_1" faultname="bpelx:rollback"&gt;Once the error is caught by the fault handler we can do the activities we want to and after that we can throw the rollback fault which will result in to the rollback of all activities part of the rolled back transaction.In this case also disadvantage is we will not be able to see anything on BPELCONSOLE.2. Calling a procedure containing the rollback statement.This procedure will look like followingPROCEDURE "XXDPI_ROLLBACK" ASBEGINrollback;END;Now once the error is caught you can explicitly call this procedure to cause the rollback of statements executed on a particular database. So if there are multiple databases, you will have to multiple such procedures.Advantage: Advantage of this approach is that your BPEL instance still remains there and u can easily see what has actually happened and all the database statements executed also gets roll backed. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3846016387425756820-5711995885517566685?l=bharat-soa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bharat-soa.blogspot.com/feeds/5711995885517566685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3846016387425756820&amp;postID=5711995885517566685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/5711995885517566685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/5711995885517566685'/><link rel='alternate' type='text/html' href='http://bharat-soa.blogspot.com/2009/07/rollbacking-ebs-apis-using-bpel.html' title='Rollbacking EBS API&apos;s using BPEL'/><author><name>Bharat Somaraju</name><uri>http://www.blogger.com/profile/08941505355729441952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_c6GY-OtAvmI/SOuAGF4hLHI/AAAAAAAAABY/vj2AmPOSyM0/S220/bharat11.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3846016387425756820.post-8710747724769693385</id><published>2009-07-08T01:55:00.000-07:00</published><updated>2009-07-08T06:51:12.446-07:00</updated><title type='text'>Transaction Processing in Oracle BPEL Processes</title><content type='html'>Just been working with a couple of colleagues on documenting how to migrate transactional processes from WebLogic Integration (WLI) to BPEL and thought I would blog about transaction support in BPEL.  First off there are a couple of contradictory statements that need to be made.&lt;br /&gt;BPEL does not have transaction delineation&lt;br /&gt;Oracle BPEL Process Manager supports transactions&lt;br /&gt;The first statement relates to the BPEL language which has no way of marking the start or end of XA style transactions, instead it provides semi-automated recovery through the concept of compensation, but more on this in another entry.&lt;br /&gt;The second statement relates to the Oracle implementation of BPEL.  BPEL is inherently a stateful language and the BPEL Process Manager uses XA transactions to manage that state.  It also allows XA transactions to extend beyond the boundaries of the active BPEL process.  In this post I will try to explain a little about how this works.&lt;br /&gt;Transactions Everywhere&lt;br /&gt;Every BPEL process executes in the context of one or more transactions.  When a process starts to execute the process manager does one of two things with transactions;&lt;br /&gt;It starts a new transaction for the process.&lt;br /&gt;It enlists the process in an already open transaction.&lt;br /&gt;BPEL uses this transaction to update process state in the database and also log audit events in the database.  Even if all this is turned off the process manager will still have processes execute in a transaction context.  When invoked through a web service interface BPEL will use the first option as there will not be a transaction context available.  When invoked through the Java API in a transactional environment then the process manager may use either option depending on the parameters used in the call.&lt;br /&gt;Lazy Boy&lt;br /&gt;BPEL will try to squeeze as many activities into a single transaction as it possibly can.  Only a few activities actually cause the process manager to update the process state in the database and commit the transaction.  A given activity does not always cause a transaction to be committed, sometimes the process may keep the same transaction context because of the properties associated with the activity.&lt;br /&gt;Enlisting Support with a Little Participation&lt;br /&gt;When BPEL calls an adapter, the ESB or another process in the same BPEL domain then it has the option to either include the target in the same transaction, or to start a separate transaction.  This behavior is controlled by the “transaction” property in the partner link.  If the “transaction” property value is set to “participate” then the callee is enlisted into the current transaction, if it is unset or set to any other value then the callee executes in a seperate transaction.  This is great for ensuring that several database updates are all included as part of the same transaction, but it does have a downside.  If any of the callees rolls back the exception then the the current BPEL process state is also rolled back to the last commit.  If there has been no commit and this process was invoked through a synchronous interaction then the process will seem to disappear from the face of the earth.  Something to be aware of.  To minimise the impact of this the database adapter will throw an error rather than rollback the transaction if by so doing it would not affect transactional integrity (basically you can do one DB update without rolling back but if you do two then an error will cause a rollback).&lt;br /&gt;Parallel Execution&lt;br /&gt;You might think that a BPEL flow activity would cause a new transaction to be started as this allows several activities to be executed in parallel. However this is not the case as the BPEL Process Manager will try to execute the flows sequentially for efficiency purposes.  Only if some action in the flow would cause a new transaction to be started will the activities execute in parallel.  A common use case for this is when a flow is used to make several synchronous calls.  Normally they would all execute in the same transaction context, however this means that the services are called sequentially, which can add latency to the application.  To avoid this there is another partner link property, “nonBlockingInvoke”, which when set to “true” causes a new thread to be spawned to execute the invoke.  The upshot of this is that a new transaction is started and this allows for true parallelism in the flow.&lt;br /&gt;Lets Talk About Commitment&lt;br /&gt;The general rules about what causes a commit are pretty straightforward, the BPEL process will commit the transaction and start a new one after the following activites&lt;br /&gt;receive – unless it is the first receive in the process and the process was called with a “transaction=participate” property (possibly by marking it as such in the partner link) in which case the process participates in the already existing transaction.&lt;br /&gt;onMessage&lt;br /&gt;wait – for very short waits (up to a couple of seconds) the process manager will not commit the transaction.&lt;br /&gt;onAlarm&lt;br /&gt;invoke – only if the partner link is non-idempotent (can be marked with the “idempotent” partner link property).&lt;br /&gt;End of process flow – only if the process is not participating in the callers transaction (the corollary of the receive).&lt;br /&gt;The table below summarises the transaction status when performing different activities.&lt;br /&gt;Activity&lt;br /&gt;Transaction Status in BPEL Process&lt;br /&gt;Transaction Status in Target Process or Adapter&lt;br /&gt;Receive&lt;br /&gt;New Transaction&lt;br /&gt;N/A&lt;br /&gt;Receive with Property “transaction=participate”&lt;br /&gt;Use Existing Transaction from Caller&lt;br /&gt;N/A&lt;br /&gt;Invoke Synchronous Process&lt;br /&gt;Use Existing Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Invoke Synchronous Process with Partner Link Property “transaction=participate”&lt;br /&gt;Use Existing Transaction&lt;br /&gt;Use Existing BPEL Transaction&lt;br /&gt;Invoke Synchronous Process with Partner Link Property “idempotent=false”&lt;br /&gt;New Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Invoke Synchronous Process with Partner Link Property “nonBlockingInvoke=true”&lt;br /&gt;New Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Invoke Asynchronous Process&lt;br /&gt;Use Existing Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Invoke Asynchronous Process with Partner Link Property “transaction=participate”&lt;br /&gt;Use Existing Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Invoke Synchronous Process with Partner Link Property “idempotent=false”&lt;br /&gt;New Transaction&lt;br /&gt;New Transaction&lt;br /&gt;Wait &lt; a couple of seconds&lt;br /&gt;Use Existing Transaction&lt;br /&gt;N/A&lt;br /&gt;Wait &gt; a couple of seconds&lt;br /&gt;New Transaction&lt;br /&gt;N/A&lt;br /&gt;Flow&lt;br /&gt;Use Existing Transaction&lt;br /&gt;&lt;br /&gt;Flow&lt;br /&gt;You may be surprised to see flow on the list, and then even more surprised to see that it uses the existing BPEL transaction context.  The reason for this is that the BPEL process manager will try to execute all the flow legs sequentially and so the behavior of the flow will be determined by the activities in the flow rather than the actual flow itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3846016387425756820-8710747724769693385?l=bharat-soa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bharat-soa.blogspot.com/feeds/8710747724769693385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3846016387425756820&amp;postID=8710747724769693385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/8710747724769693385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/8710747724769693385'/><link rel='alternate' type='text/html' href='http://bharat-soa.blogspot.com/2009/07/transaction-processing-in-oracle-bpel.html' title='Transaction Processing in Oracle BPEL Processes'/><author><name>Bharat Somaraju</name><uri>http://www.blogger.com/profile/08941505355729441952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_c6GY-OtAvmI/SOuAGF4hLHI/AAAAAAAAABY/vj2AmPOSyM0/S220/bharat11.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3846016387425756820.post-7830834448664504543</id><published>2009-04-16T05:55:00.000-07:00</published><updated>2009-04-16T07:02:15.281-07:00</updated><title type='text'>HOw to Call WSSE secured web service from BPEL</title><content type='html'>1.Create partner link to the gateway that is wrapping the actual service as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_c6GY-OtAvmI/SecwoV-IidI/AAAAAAAAACw/gYVJ73VMoNE/s1600-h/partnerlink.bmp"&gt;&lt;img style="cursor: pointer; width: 360px; height: 120px;" src="http://3.bp.blogspot.com/_c6GY-OtAvmI/SecwoV-IidI/AAAAAAAAACw/gYVJ73VMoNE/s320/partnerlink.bmp" alt="" id="BLOGGER_PHOTO_ID_5325278554039552466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.Create a new BPEL variable as shown&lt;br /&gt;&lt;br /&gt;The username and password that should be provided to the service gateway should be in the SOAP header of the partner link call. For this we need a BPEL variable that is based on an XSD that is provided by OASIS.&lt;br /&gt;&lt;br /&gt;Please click for XSD here&lt;br /&gt;&lt;br /&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_c6GY-OtAvmI/Secx8mcepUI/AAAAAAAAAC4/GCmuxujrP-I/s1600-h/security.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 128px;" src="http://2.bp.blogspot.com/_c6GY-OtAvmI/Secx8mcepUI/AAAAAAAAAC4/GCmuxujrP-I/s320/security.JPG" alt="" id="BLOGGER_PHOTO_ID_5325280001570809154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt; &lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;br /&gt; &lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt;Now create a BPEL Security_header variable based on the Security variable defined in this schema. This variable is of type: ANY_TYPE, but I will address that later.&lt;br /&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;xsd:complextype name="AttributedString"&gt;&lt;xsd:annotation&gt;&lt;/xsd:annotation&gt;&lt;xsd:simplecontent&gt;&lt;xsd:complextype name="PasswordString"&gt;&lt;xsd:complextype name="EncodedString"&gt;&lt;xsd:complextype name="UsernameTokenType"&gt;&lt;xsd:sequence&gt;&lt;xsd:element name="Username" type="wsse:AttributedString"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:complextype name="BinarySecurityTokenType"&gt;&lt;xsd:complextype name="KeyIdentifierType"&gt;&lt;xsd:simpletype name="tUsage"&gt;&lt;xsd:complextype name="ReferenceType"&gt;&lt;xsd:attribute name="URI" type="xsd:anyURI"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="EmbeddedType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="SecurityTokenReferenceType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:attribute ref="wsse:Usage"&gt;&lt;xsd:complextype name="SecurityHeaderType"&gt;&lt;xsd:complextype name="TransformationParametersType"&gt;&lt;xsd:element name="Password" type="wsse:PasswordString"&gt;&lt;xsd:element name="Nonce" type="wsse:EncodedString"&gt;&lt;xsd:simpletype name="FaultcodeEnum"&gt;&lt;xsd:restriction base="xsd:QName"&gt;&lt;br /&gt;   &lt;xsd:enumeration value="wsse:UnsupportedSecurityToken"&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:restriction&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:element&gt;&lt;/xsd:element&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:element&gt;&lt;/xsd:sequence&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simplecontent&gt;&lt;/xsd:complextype&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_c6GY-OtAvmI/Sec0_SX2YyI/AAAAAAAAADA/YoW0mbaM8Ao/s1600-h/var.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 104px;" src="http://1.bp.blogspot.com/_c6GY-OtAvmI/Sec0_SX2YyI/AAAAAAAAADA/YoW0mbaM8Ao/s320/var.JPG" alt="" id="BLOGGER_PHOTO_ID_5325283346257175330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;xsd:complextype name="AttributedString"&gt;&lt;xsd:simplecontent&gt;&lt;xsd:complextype name="PasswordString"&gt;&lt;xsd:complextype name="EncodedString"&gt;&lt;xsd:complextype name="UsernameTokenType"&gt;&lt;xsd:sequence&gt;&lt;xsd:element name="Username" type="wsse:AttributedString"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:complextype name="BinarySecurityTokenType"&gt;&lt;xsd:complextype name="KeyIdentifierType"&gt;&lt;xsd:simpletype name="tUsage"&gt;&lt;xsd:complextype name="ReferenceType"&gt;&lt;xsd:attribute name="URI" type="xsd:anyURI"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="EmbeddedType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="SecurityTokenReferenceType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:attribute ref="wsse:Usage"&gt;&lt;xsd:complextype name="SecurityHeaderType"&gt;&lt;xsd:complextype name="TransformationParametersType"&gt;&lt;xsd:element name="Password" type="wsse:PasswordString"&gt;&lt;xsd:element name="Nonce" type="wsse:EncodedString"&gt;&lt;xsd:simpletype name="FaultcodeEnum"&gt;&lt;xsd:restriction base="xsd:QName"&gt;&lt;xsd:enumeration value="wsse:UnsupportedSecurityToken"&gt;   &lt;xsd:enumeration value="wsse:UnsupportedAlgorithm"&gt;&lt;br /&gt;   &lt;xsd:enumeration value="wsse:InvalidSecurity"&gt;3.&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:restriction&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:element&gt;&lt;/xsd:element&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:element&gt;&lt;/xsd:sequence&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simplecontent&gt;&lt;/xsd:complextype&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt; Provide the authentication details to the new security variable The Security_header variable of type security is of ANY_TYPE type. But are now going to assign a piece of XML as the variables value. This piece of XML will contain the username and password; in this case username/password.&lt;br /&gt;Create an assign activity and copy the following XML to the variable&lt;br /&gt;&lt;br /&gt;&lt;wsse:security wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;wsse:usernametoken wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;wsse:password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&gt;&lt;/wsse:password&gt;&lt;/wsse:usernametoken&gt;&lt;/wsse:security&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;xsd:complextype name="AttributedString"&gt;&lt;xsd:simplecontent&gt;&lt;xsd:complextype name="PasswordString"&gt;&lt;xsd:complextype name="EncodedString"&gt;&lt;xsd:complextype name="UsernameTokenType"&gt;&lt;xsd:sequence&gt;&lt;xsd:element name="Username" type="wsse:AttributedString"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:complextype name="BinarySecurityTokenType"&gt;&lt;xsd:complextype name="KeyIdentifierType"&gt;&lt;xsd:simpletype name="tUsage"&gt;&lt;xsd:complextype name="ReferenceType"&gt;&lt;xsd:attribute name="URI" type="xsd:anyURI"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="EmbeddedType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="SecurityTokenReferenceType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:attribute ref="wsse:Usage"&gt;&lt;xsd:complextype name="SecurityHeaderType"&gt;&lt;xsd:complextype name="TransformationParametersType"&gt;&lt;xsd:element name="Password" type="wsse:PasswordString"&gt;&lt;xsd:element name="Nonce" type="wsse:EncodedString"&gt;&lt;xsd:simpletype name="FaultcodeEnum"&gt;&lt;xsd:restriction base="xsd:QName"&gt;&lt;xsd:enumeration value="wsse:UnsupportedSecurityToken"&gt;&lt;xsd:enumeration value="wsse:UnsupportedAlgorithm"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurity"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurityToken"&gt;&lt;xsd:enumeration value="wsse:FailedAuthentication"&gt;&lt;xsd:enumeration value="wsse:FailedCheck"&gt;&lt;xsd:enumeration value="wsse:SecurityTokenUnavailable"&gt;&lt;br /&gt;  &lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:restriction&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:element&gt;&lt;/xsd:element&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:element&gt;&lt;/xsd:sequence&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simplecontent&gt;&lt;/xsd:complextype&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_c6GY-OtAvmI/Sec2R2XL_4I/AAAAAAAAADI/iz9ZhG5axNg/s1600-h/xmlfragment.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 146px;" src="http://4.bp.blogspot.com/_c6GY-OtAvmI/Sec2R2XL_4I/AAAAAAAAADI/iz9ZhG5axNg/s320/xmlfragment.JPG" alt="" id="BLOGGER_PHOTO_ID_5325284764667346818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;xsd:complextype name="AttributedString"&gt;&lt;xsd:simplecontent&gt;&lt;xsd:complextype name="PasswordString"&gt;&lt;xsd:complextype name="EncodedString"&gt;&lt;xsd:complextype name="UsernameTokenType"&gt;&lt;xsd:sequence&gt;&lt;xsd:element name="Username" type="wsse:AttributedString"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:complextype name="BinarySecurityTokenType"&gt;&lt;xsd:complextype name="KeyIdentifierType"&gt;&lt;xsd:simpletype name="tUsage"&gt;&lt;xsd:complextype name="ReferenceType"&gt;&lt;xsd:attribute name="URI" type="xsd:anyURI"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="EmbeddedType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="SecurityTokenReferenceType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:attribute ref="wsse:Usage"&gt;&lt;xsd:complextype name="SecurityHeaderType"&gt;&lt;xsd:complextype name="TransformationParametersType"&gt;&lt;xsd:element name="Password" type="wsse:PasswordString"&gt;&lt;xsd:element name="Nonce" type="wsse:EncodedString"&gt;&lt;xsd:simpletype name="FaultcodeEnum"&gt;&lt;xsd:restriction base="xsd:QName"&gt;&lt;xsd:enumeration value="wsse:UnsupportedSecurityToken"&gt;&lt;xsd:enumeration value="wsse:UnsupportedAlgorithm"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurity"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurityToken"&gt;&lt;xsd:enumeration value="wsse:FailedAuthentication"&gt;&lt;xsd:enumeration value="wsse:FailedCheck"&gt;  &lt;/xsd:enumeration&gt;&lt;br /&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:restriction&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:element&gt;&lt;/xsd:element&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:element&gt;&lt;/xsd:sequence&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simplecontent&gt;&lt;/xsd:complextype&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt;&lt;br /&gt;&lt;p&gt;4. The value of the  variable should be inserted in the SOAP header of the partner link call. &lt;/p&gt; &lt;p align="baseline"&gt;Loging details have to be provided in the SOAP header, that’s how WS-Security provides authentication details. That can be done by providing the the Security_header variable as a header variable during the Invoke activity. Of course you need to provide the proper input and output variables on the invoke activity.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_c6GY-OtAvmI/Sec4iu2-O5I/AAAAAAAAADQ/i4l6EpNkaPA/s1600-h/securityhdr.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 104px;" src="http://2.bp.blogspot.com/_c6GY-OtAvmI/Sec4iu2-O5I/AAAAAAAAADQ/i4l6EpNkaPA/s320/securityhdr.JPG" alt="" id="BLOGGER_PHOTO_ID_5325287253734210450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;xsd:schema targetnamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xsd="http://www.w3.org/2001/XMLSchema" ds="http://www.w3.org/2000/09/xmldsig#" elementformdefault="qualified" attributeformdefault="unqualified" blockdefault="#all" version="0.2"&gt;&lt;xsd:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" schemalocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemalocation="http://www.w3.org/2001/xml.xsd"&gt;&lt;xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemalocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt;&lt;xsd:complextype name="AttributedString"&gt;&lt;xsd:simplecontent&gt;&lt;xsd:complextype name="PasswordString"&gt;&lt;xsd:complextype name="EncodedString"&gt;&lt;xsd:complextype name="UsernameTokenType"&gt;&lt;xsd:sequence&gt;&lt;xsd:element name="Username" type="wsse:AttributedString"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:complextype name="BinarySecurityTokenType"&gt;&lt;xsd:complextype name="KeyIdentifierType"&gt;&lt;xsd:simpletype name="tUsage"&gt;&lt;xsd:complextype name="ReferenceType"&gt;&lt;xsd:attribute name="URI" type="xsd:anyURI"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="EmbeddedType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute name="ValueType" type="xsd:anyURI"&gt;&lt;xsd:complextype name="SecurityTokenReferenceType"&gt;&lt;xsd:choice minoccurs="0" maxoccurs="unbounded"&gt;&lt;xsd:attribute ref="wsu:Id"&gt;&lt;xsd:attribute ref="wsse:Usage"&gt;&lt;xsd:complextype name="SecurityHeaderType"&gt;&lt;xsd:complextype name="TransformationParametersType"&gt;&lt;xsd:element name="Password" type="wsse:PasswordString"&gt;&lt;xsd:element name="Nonce" type="wsse:EncodedString"&gt;&lt;xsd:simpletype name="FaultcodeEnum"&gt;&lt;xsd:restriction base="xsd:QName"&gt;&lt;xsd:enumeration value="wsse:UnsupportedSecurityToken"&gt;&lt;xsd:enumeration value="wsse:UnsupportedAlgorithm"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurity"&gt;&lt;xsd:enumeration value="wsse:InvalidSecurityToken"&gt;&lt;br /&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:enumeration&gt;&lt;/xsd:restriction&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:element&gt;&lt;/xsd:element&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:choice&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:attribute&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simpletype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:attribute&gt;&lt;/xsd:element&gt;&lt;/xsd:sequence&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:complextype&gt;&lt;/xsd:simplecontent&gt;&lt;/xsd:complextype&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:import&gt;&lt;/xsd:schema&gt;That’s it. We have created a variable, provided our username and password to the variable. We have then put that variable in the SOAP header. The BPEL process we have now created looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_c6GY-OtAvmI/Sec5Qfv36MI/AAAAAAAAADY/bzuq3YyM8Dw/s1600-h/bpelprocess"&gt;&lt;img style="cursor: pointer; width: 312px; height: 320px;" src="http://2.bp.blogspot.com/_c6GY-OtAvmI/Sec5Qfv36MI/AAAAAAAAADY/bzuq3YyM8Dw/s320/bpelprocess" alt="" id="BLOGGER_PHOTO_ID_5325288039951886530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Test the BPEL process confirm the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3846016387425756820-7830834448664504543?l=bharat-soa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bharat-soa.blogspot.com/feeds/7830834448664504543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3846016387425756820&amp;postID=7830834448664504543' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/7830834448664504543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3846016387425756820/posts/default/7830834448664504543'/><link rel='alternate' type='text/html' href='http://bharat-soa.blogspot.com/2009/04/how-to-call-wsse-secured-web-service.html' title='HOw to Call WSSE secured web service from BPEL'/><author><name>Bharat Somaraju</name><uri>http://www.blogger.com/profile/08941505355729441952</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_c6GY-OtAvmI/SOuAGF4hLHI/AAAAAAAAABY/vj2AmPOSyM0/S220/bharat11.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_c6GY-OtAvmI/SecwoV-IidI/AAAAAAAAACw/gYVJ73VMoNE/s72-c/partnerlink.bmp' height='72' width='72'/><thr:total>2</thr:total></entry></feed>
