Using WCF Cutom Adapter to return CLOB (or similar)

Hi all,
I am trying to return mulitple sets of data from an Oracle table each of which exceed VARCHAR2(4000).
I wish to do this in one call to a stored procedure as the intention is to assign the returned data to a messages body parts so that I can send them as multiple seperate attachments to an email (using the SMTP adapter).
My oracle stored procedure and returned data types are as follows:
    PROCEDURE get_job(
        po_job_id OUT jobs.job_id%TYPE, po_endpoint OUT data.endpoint%TYPE,
        po_job_type OUT job_types.job_type_id%TYPE, po_data OUT rec_data_table);
    TYPE rec_data_table IS TABLE OF rec_data
       INDEX BY BINARY_INTEGER;
    TYPE rec_data IS RECORD (
        data CLOB
        --data VARCHAR2(4000));
If I do restrict the data to VARCHAR2(4000), as shown commented out in the rec_data RECORD above everything works fine.
However, to return anything larger I believe would require me to return a CLOB (even though I would probably only be returning data of a few MBytes not GBytes).
Having tried this I get the following error:
"The adapter "WCF-Custom" raised an error message. Details "Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-03113: end-of-file on communication channel
Process ID: 499868
Session ID: 201 Serial number: 33735 ---> Oracle.DataAccess.Client.OracleException: ORA-03113: end-of-file on communication channel
Process ID: 499868
Session ID: 201 Serial number: 33735"
I am using Oracle 11gR2, BizTalk 2010 and the WCF adapter with oracle bindings.
Researching this I find conflicting information:
"LOB types: The WCF-based Oracle DB adapter provides rich support for BLOB, CLOB and BFILE types in tables and stored procedures/functions. The adapter also exposes special operations for streaming BLOB/CLOB/BFILE data in the WCF service model
interface." Source: http://blogs.msdn.com/b/adapters/archive/2007/10/29/biztalk-oracle-adapter-vs-wcf-based-oracle-db-adapter.aspx
“Due to the limitation of associative arrays, PL/SQL tables or PL/SQL tables of records that contain any of the following data types are not supported in the Oracle Database adapter:
BFILE
BLOB
CLOB ……….”
Source: http://msdn.microsoft.com/en-us/library/dd788520.aspx
Also, this post (http://social.msdn.microsoft.com/Forums/en-US/303cc67c-5e01-4ecb-ba5c-184a1d73a7f7/biztalk-wcf-adpater-oracle-store-procedure-returning-clob?forum=biztalkediandas2) seems to indicate
it is possible but there is no detail so not sure if it matches my requirements.
I have also had a quick look at the
Operate_LOB sample but not sure if this will provide me with the solution I am after as I really wanted to return an array of CLOBS (or similar).
I have seen various other posts but nothing that definitively answers my questions and from my tests I would say that I can’t easily return largish amounts of data (a few MBs) in a single element
from Oracle …. unless of course I am missing something.
Can anyone give me a definitive answer as to whether I can do what I have set out above … if not I will turn my attention to a different solution.
Many Thanks for any help/advice you can provide,
Regards,
Dave

From your description, it can hardly give precise troubleshooting for this problem, you can
consider opening a support case with us. Visit this link to see the various support options that are available to better meet your needs: 
http://support.microsoft.com/default.aspx 

Similar Messages

  • Polling using WCF SQL Adapter

    Hi - I have to develop this in BizTalk
    There is a table in SQL database where BizTalk needs to poll the data using WCF SQL Adapter.
    How and what query/stored proc do I need to write ?
    and how about polling interval should I mention.
    Is there any detailed blog or link which clearly explains this, will be helpful
    MBH

    The first thing that you should remember is that the most effective way of getting data from SQL would be if you could remove the records after reading them. This was something that the native SQL Server adapter supported. For WCF-SQL, the way to achieve
    this is to
    Create a SP which is what you will specify as the execute statement for your adapter. This SP would, on the basis of TOP 1, get the ID, read the record and delete it. Then it would return the read data. You will generate schemas for this SP and deploy them
    for subscribing to the received messages.
    You will create a query that returns the count of records from the said table which you will use as the polling query. This will ensure that the adapter uses this on the configured interval to see if data exists. If it exists, it would use the execute statement
    (invoking your SP) to get the data.
    There is an option to keep executing the SP while data is available. This ensures that if more than ONE record is inserted into your table, all the records would be picked up after the first polling interval (as opposed to poll, pick-up one, poll and then
    pick up the other, etc.). Be careful while setting the polling interval (you cannot go beyond 1 sec) since this depends on your SQL servers ability to process the data.
    With regards to documentation, I'd refer you to
    http://msdn.microsoft.com/en-us/library/dd788532.aspx - Polling SQL Server by using the WCF-SQL Adapter.
    Regards.

  • Polling records from mulitiple table(61 Tables) using WCF-SQL adapter

    Hi,
    I would like get some suggestion from this forum. I've a scenario, in which I need to poll the records from multiple table(61) which are related and may have one to many relationship. what's the best way to poll the records from SQL table to BizTalk.
    Thanks in advance..
    Regards,
    Karthick

    Karthick,
    Write a SQL stored procedure with joins from your 61 tables (!!!) . Use WCF-SQL adapter to invoke the procedures.
    Following references shall help you:
    Executing Stored Procedures in SQL Server by Using BizTalk Server
    Performing Composite Operations on SQL Server by Using BizTalk Server
    Bing-Results: biztalk wcf sql
    adapter polling stored procedure
    I don’t know your exact requirement. Consider using SQL-SSIS for ETL process depending on your requirements. Anyway if your requirement really needs BizTalk, above suggest
    should solve your problem.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Error while posting to Webservice using WCF-BasicHttp adapter

    Hi,
    I am getting the below exception when i am posting a request to a .asmx webservice using the Wcf-BasicHttp adapter.
    I am able to call the same service with the SOAP adapter successfully. Could you please let me know any resolutions for the same.
    The adapter failed to transmit message going to send port "MySendPort" with URL "http://myservice.com/Web.Services/service1.asmx". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.ServiceModel.ProtocolException:
    The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes
    of the response were: '
    <html>
        <head><link rel="alternate" type="text/xml" href="/Web.Services/Service1.asmx?disco" />
        <style type="text/css">
            BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; }
            #content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; }
            A:link { color: #336699; font-weight: bold; text-decoration: underline; }
            A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; }
            A:active { color: #336699; font-weight: bold; text-decoration: underline; }
            A:hover { color: cc3300; font-weight: bold; text-decoration: underline; }
            P { color: #000000; margin-top: 0px; margin-bottom: 12px; font-family: Verdana; }
            pre { background-color: #e5e5cc; padding: 5px; font-family: Courier New; font-size: x-small; margin-top: -5px; border: 1px #f0f0e0 solid; }
            td { color: #000000; font-family: Verdana; font-size: .7em; }
            h2 { font-size: 1.5em; font-weight: bold; margin-top: 25px; margin-bottom: 10px; border-to'.
    Server stack trace:
       at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
       at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
       at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)
    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".
    Regards,
    Ujjwal
    -Ujjwal

    Where does the HTML indicate that the Service is not running??
    The error message " The content type text/html; charset=utf-8 of the response message does not match
    the content type of the binding (text/xml; charset=utf-8)" points to a bug in the WCF-BasicHttp described here:
    http://social.msdn.microsoft.com/Forums/en-US/11796bf5-ba6a-4878-977e-5c854642f67c/the-content-type-textxml-charsetiso88591-of-the-response-message-does-not-match-the-content?forum=biztalkgeneral
    Although not 100% the same, the conclusion here was to still use the old Adapter :-(
    Morten la Cour

  • UsnernameToken authentication failed using WCF-BasicHttp adapter

    I have read the other topic that is identical to this, but there is no detail as to what was actually changed to allow Kerrey to override the default 256 character limit. So I figured I would start a new thread and see if someone can show me what my binding
    file should include to override this setting.
    thanks,
    Chuck
    Charles

    So, the problem is that somewhere in the BizTalk/WCF bridge layer, a password is cut off at 256.  The WCF-Custom Adapter has the same issue.
    You have two options.
    Biding File:
    Export a binding file.
    Trim all but the one Send Port where you need the long password.
    Fine the Password element in the TransportTypeData blob.  Yes, it's escaped Xml so edit carefully.
    Enter you long password, save.
    Import Binding file, then delete (so you don't have the clear test password anymore).
    SSO:  (This is the 'better' option)
    Create an SSO Affiliate Application
    Set the Service Credentials.  SSO will accept the long password.
    Set Use Single SignON and your Affiliate application in the Client Credentials dialog on the Security Tab.
    Somewhere prior to the Adapter (Orchestration, Send Pipeline) set the BTS.SSOTicket Context Property
    I've never tried the binding file option but SSO works great and is designed for such scenarios (storing passwords).

  • Biztalk WCF Cutom Adapter

     Actually my WCF Custom adapter is pointing to my local machine SQL now ineed to point to my Dev environment the same send Port
    like my local machines URL is mssql://HDUPEDEVBIZ\Biztalk/AfmsDevice?
    i have to change now to mssql://HDUPEDEVSQLDB02\INSTANCE_1/AfmsDevice?
    i get an error saying that its not a well formed URI
    Any suggestions on this?

    mssql://HDUPEDEVSQLDB02/INSTANCE_1/AfmsDevice?
    its: mssql://[ServerName]/[InstanceName if any]/[DatabaseName]?
    Also remember that once you change from a local DB to a DB on another machine, MSDTC needs to be running
    on both instances (Biztalk and DB), if you have UseAmbientTransaction set to true.
    Morten la Cour

  • Sending an XML that contains CDATA to a SOAP service using wcf-webhttp adapter

    I've run into a rather unique problem when trying to send an xml that contains the <![cdata[]]> tag to a soap service.  Without the tag the xml sends through without issue.  However, when I add the cdata tag within the xml, BizTalk immediately
    fails without even attempting to send to the service.  I receive the following error:
    "The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not
    been promoted. Please use the Biztalk Administration console to troubleshoot this failure. "
    I have ensured that the send adapter is enlisted and started. 
    This is on a BizTalk 2013 installation.
    Any and all help is appreciated!
    Thanks

    as per my understanding, if you use the
    <![cdata[]]> tag in sending message, BizTalk is not able to send the message as it is not matching with your send message schema that is why error  'The
    published message could not be routed because no subscribers were found.....' 
    Please compare the message format or configured schema in send shape and message which suspended when
    used <![cdata[]]> tag used.
    Regards
    Suman

  • HTTP adapter vs WCF-based adapter

    i have a requirement working with third party CRM system . Right now they are offering SOAP web service and saying HTTP adapter works, but I want to go for advanced technology like WCF based adapters. Which option is better? HTTP or WCF-based?? if it is
    WCF , what is the right WCF adapter to use. NOte: they are offering only SOAP.

    Hi,
    Off-course the WCF based option is better. And for your requirement you have to use WCF-BasicHttp adapter which is meant for ASMX-based
    Web services and clients that conform to the WS-I Basic Profile 1.1.
    SOAP VS WCF-BasicHttp Adapter points from MSDN article:
    WCF adapters documents per second rate is general be better than SOAP adapter. 
    SOAP adapter has the disadvantage of serializing and deserializing messages between .NET types and raw XML data which in some cases could result in unwanted data modification. WCF adapters take the approach of preserving the data stream. 
    WCF adapters publish what is essentially the same schema as will be used in the BizTalk runtime. In contrast, SOAP adapter returns metadata generated by reflecting on the .NET classes generated to represent the schemas. Since .NET does not preserve
    all the nuances of XSD schemas, the exposed WSDL may not accurately reflect the schemas used by the BizTalk runtime. 
    It is easier to migrate from WCF-BasicHttp to WCF-WSHttp if needed.
    Maheshkumar S Tiwari|User Page|Blog|BizTalk
    Server : How Map Works on Port Level

  • How do you configure a WCF-SQL adapter to write data from a SQL2012 "always on" database?

    Hi All,
    I have a BizTalk environment. I have to write the data from BizTalk to the database which is configured using ALWAYS ON availability group.
    I use WCF-SQL adapter to write the data. My question is this setup a supported?

    The answer is NO.
    Refer: Can
    I use a BizTalk WCF-SQL send adapter with a SQL 2012 Always on Database?
    A snippet quoted below.
    In summary (in order of preference):
    Disable AlwaysOn Availability Groups / Mirroring on SQL server if you need to connect to this SQL server which has this enabled
    Disable transactions and implement logic to be able to handle duplicates .
    Disable transactions and handle the duplicates or lost messages with custom logic (e.g. Send twice and compare and implement error handling). You need to write your own DTC handling this which
    is probably very complicated.
    Disable transactions and live with risk of duplicates or lost messages without handling duplicates.
    Refer: SQL Server AlwaysOn feature does not support MSDTC transactions.
    Rachit
    Please mark as answer or vote as helpful if my reply does

  • WCF-SQL Adapter Set up

    Hi,
    I am using Microsoft Biztalk 2010 on Windows Server 2007(SP2). I am want to use WCF-SQL adapter but I am not able to see any adapter when I tried to create new adapter at "Platform Setting -> Adapter -> New Adapter dropdown.".
    Windows Communication Foundation LOB Adapter SDK, Microsoft Biztalk Adapter Pack, Microsoft Biztalk Adapter Pack(x64) are installed on my machine.
    Am I missing something? how to get the WCF-SQL in the list of adapter.
    Thanks, Girish R. Patil.

    Hi Girish,
    Another area to check is machine.config file for binding entries.
    check following for hint  :   http://tech-findings.blogspot.in/2013/06/no-valid-adapters-installed-on-machine.html
    Maheshkumar S Tiwari|User Page|Blog|BizTalk
    Server : How Map Works on Port Level

  • Issue with WCF-Custom adapter polling Oracle db

    Hi,
    I have a scenario where BizTalk connects to Oracle db using WCF-custom adapter with OracleDbBding which has queries at P below properties:
    PolledDataAvailableStatement
    PollingStatement
    PostPollStatement
    The interface was working for more than 2 years, but when oracle server is moved from prod to DR server, it started throwing crazy errors.I have gone thru many blogs there seems to no definitive answer or solution for this.
    I have been getting below errors:
    The adapter "WCF-Custom" raised an error message. Details "The faulted WCF service host at address oracledb:// could not be restarted, and as a result no messages can be
    received on the corresponding receive location. BizTalk Server will continue trying to start the service host until it succeeds or the receive location is disabled.
    The adapter "WCF-Custom" raised an error message. Details "The faulted WCF service host at address oracledb://xxxxx/?PollingId= could not be restarted, and as a result
    no messages can be received on the corresponding receive location. BizTalk Server will continue trying to start the service host until it succeeds or the receive location is
    disabled.
    To fix the problem, you may choose to:
    1. Use the error information given to fix the problem.
    2. Restart the receive location.
    3. Keep waiting for BizTalk to recycle the service host. Another event will notify if the service host is successfully started.
    Detailed error information: Microsoft.ServiceModel.Channels.Common.ConnectionException: Connection request timed out ---> Oracle.DataAccess.Client.OracleException Connection
    request timed out    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object
    src, String procedure)
       at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
       at Oracle.DataAccess.Client.OracleConnection.Open()
       at Microsoft.Adapters.OracleCommon.OracleCommonConnectionWrapper..ctor(String connectionString, OracleCommonExecutionHelper executionHelper)
       at Microsoft.Adapters.OracleDB.OracleDBConnection.Microsoft.ServiceModel.Channels.Common.IConnection.Open(TimeSpan timeout)
       --- End of inner exception stack trace ---
       at Microsoft.Adapters.OracleDB.OracleDBConnection.Microsoft.ServiceModel.Channels.Common.IConnection.Open(TimeSpan timeout)
       at Microsoft.ServiceModel.Channels.Common.Design.ConnectionPool.GetConnection(Guid clientId, TimeSpan timeout)
       at Microsoft.ServiceModel.Channels.Common.Design.ConnectionPool.GetConnectionHandler[TConnectionHandler](Guid clientId, TimeSpan timeout, MetadataLookup metadataLookup,
    String& connectionId)
       at Microsoft.ServiceModel.Channels.Common.Channels.AdapterChannelListener`1.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open()
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable()
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.RecycleServiceHost(Object unused)".-------------------------
    The adapter "WCF-Custom" raised an error message. Details "System.ServiceModel.CommunicationObjectFaultedException: The communication object,
    Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel, cannot be used for communication because it is in the Faulted state.
       at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Close()
       at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.Close()".

    "Oracle.DataAccess.Client.OracleException Connection  request timed out    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object 
    src, String procedure)"
    Looks like it's the Oracle client that can't connect. Can you run any queries from the Oracle tools?

  • Retrieving(Inbound) IDOC from SAP Error WCF-SAP Adapter

    I am attempting to retrieve data from SAP using WCF-SAP Adapter. I used the wizard to retrieve the IDOCTYP(PEXR2002) and the appropriate docrel=740. Whenever I send the IDOC to BizTalk I receive the error below.  Anyone have insight to what could be
    the problem. BizTalk is not resolving the IDOC types properly.
    Also: I am using the schema in a flat file disassembler in the receive pipeline.
    Reason: Unexpected data found while looking for:
    'E2EDKA1003'
    'E2IDBL2000'
    'E2IDB02002'
    'E2EDL02'
    'E2EDL03'
    'E2IDLU5001'
    'E2IDPU1'
    'E2IDBW1'
    The current definition being parsed is E2IDKU5001GRP. The stream offset where the error occured is 1483. The line number where the error occured is 11. The column where the error occured is 0. 

    Hi Jordan ,
    This really happens when you receive untyped message from your SAP System .  Its been well described in below link 
    Receiving Idocs - getting the raw idoc data
    Better option here is to create a pipeline component which will be responsible for your message parsing or try something like below
    During the configuration of your one-way Receive Location using WCF-Custom, navigate to the Messages tab. Under the section "Inbound BizTalk Messge Body", select the "Path" radio button, and:
    (a) Enter the body path expression as:
    /*[local-name()='ReceiveIdoc']/*[local-name()='idocData']
    (b) Choose "String" for the Node Encoding.
    Thanks
    Abhishek

  • Issues with creating and sending BOM XML IDOC to SAP using 2010 WCF-SAP Adapter (without using Biztalk Server)

      I'm trying to replace an existing Biztalk 2006 Send BOM IDOC process, and completely remove Biztalk server from the equation.   The existing Bizatalk 2006 server receives an input BOM (Bill of Materials) flat file, and using a Biztalk Map (BM08),
    and Orchestration, generates an Idoc and sends it to SAP.
      In my replacement C# program, I'm using the 2010 WCF-SAP Adapter, and am trying to generate the BOMMAT03 XML IDOC it to SAP.  
      I generated the BOMMAT03 schema from SAP using the Add Adapter Service in VS 2010.  I was able to generate a BM08 XSLT from the existing BMO8 map in the current Biztalk 2006 process.  I am able to run a XSLT transform on the input BOM flat
    file, and generate an XML file from that.  
      However, I've run into a few issues.   First of which, is that the XML file that is generated from the XSLT transform is NOT the same schema as the BOMMAT03 schema expects.  It's somewhat similar, but different enough that I have to manually
    translate between the two in my code.  I've verified that both the original Bitztalk 2006 process and my replacement program use BOMMAT V3 from SAP.  Question--Is Biztalk 2006 server doing some other magic to turn that transormed XML into the BOMMAT03
    schema?    
     I ended writing code which translates the transformed XML into the BOMMAT03 schema (which is a strong typed XML IDOC at this point).
      However, when I try to send the BOMMAT03 XML IDOC, I get an exception "Object reference not set to an instance of an object."
                   idocClient.Send(idocData, ref sadapterTxGuid);
    idocData is of type BOMMAT03, and I've verified that the various fields are populated.  
      Any help is appreciated. 

    Well, putting in a MSDN subscription support ticket for Biztalk server actually helped with the issue.  They didn't find, or fix the issue directly.  But one of the examples (https://randypaulo.wordpress.com/tag/idoc/) they sent over, jogged my
    memory, and I realized in the code snippet below, I had accidentally deleted the 1st line.  Such a simple mistake, yet was easy to overlook.  The URL example is almost EXACTLY like my code, but without the transform and translation code to convert
    from input XML file to IDOC XML.  If someone is interested in that, let me know.    
    //Forgot the 1st line.  
    idocClient = new IdocBOMMAT03SIEIS_WED_BOMMAT03V3R700Client(binding, endpointAddress);
     idocClient.Send(idocData, ref sadapterTxGuid);
    For anyone else interested in knowing, you CAN send a strongly typed IDOC to SAP using C#.NET and the WCF SAP 2010 Adapter, using the IDOC Binding Client class you generated using the Add Adapter Service Reference in VS2010.  
    The one difference, which no one, not even the tech support from MS could tell me, was why the XSLT which I generated from the original map, did not transform the input BOM XML into the BOMMAT03 XML.  Instead, it transformed it into an intermediate
    XML, which resembled the BOMMAT03 IDOC XML, but still needed to be translated to the BOMMAT03 IDOC format.  
    The tech support person swore up and down that it should.  But I believe that something happens in Biztalk server, after the Mapping occurs, maybe in the Pipeline, which converts that
    intermediate XML into the final BOMMAT03 IDOC XML format.
    I do think that the examples are severely lacking in showing how to send a strong typed IDOC using C# and the WCF-SAP Adapter.  Even worse, the examples are completely lacking in how to actually generate a weakly typed IDOC.  They show how to send
    that weakly typed IDOC, but show me, or give me a class to be able to generate it.
    I realize that this is not quite the "recommended way" to do it, but in reality, not everyone wants or even needs a full Biztalk installation.   For some simple stuff like this, a C#.NET program and WCF-SAP adapter do the trick.  

  • How to get IDoc Status from WCF Service Adapter?

    I have successfully transfered a strong typed Idoc to SAP using a BizTalk WCF Service Adapter.  I did so based on this example:  [http://msdn.microsoft.com/en-US/library/cc185231(v=BTS.10).aspx].  We are using the IDoc to create a purchase order.  The IDocClient.Send(idoc, ref guid); method returns only a guid.  I can translate that using the SapAdpaterUtilities to a transaction ID.  When I look at the Idoc in WE02, I can see that it has status information which includes the purchase order number.  Is there any way for me to capture this status information in my .Net application when I send the IDoc?  Can I query the transaction ID?  Or do I just need to get the last PO Number through an RFC?
    Scott

    I ended up using the SAP .Net Data Provider in the Biztalk Adapter Pack to retrieve the PO Number.  Essentially when you pass the IDoc you won't get anything in return unless the file transfer fails.
    Scott

  • WCF-WebHttp Adapter issue?

    Hello guys
    I stumble on this problem while I was trying to develop a custom pipeline component that on runtime generates a GUID and affects it to the context and body of the message. That GUID is placed on Http Headers as a boundary (content type)
    and on the message body. What it happens is that, on the first message that I send, everything goes well (header GUID matches body GUID, the service response it’s not important here), after the first message all the following messages on the header will have
    the GUID from the first message that I send thought the port, although everything goes fine on the body. Like this:
    Request #1:
    Header: Content-Type: multipart/mixed; boundary=batch_bead1969-540e-4020-8b47-cf0fbcddef1c
    Body:
    bead1969-540e-4020-8b47-cf0fbcddef1ce
    Request #2:
    Header: Content-Type: multipart/mixed; boundary=batch_bead1969-540e-4020-8b47-cf0fbcddef1c
    Body:
    226dd0f5-501f-4da8-a871-b79e6ac512d0
    Request #3:
    Header: Content-Type: multipart/mixed; boundary=batch_bead1969-540e-4020-8b47-cf0fbcddef1c
    Body:
    98b7e6f9-c229-4a0b-a8f1-cd0c1f3e27e8
    As you can see in red, between multiple requests the GUID is always the same, and it shouldn’t be since on the body is changing correctly. After some analysis we realized that the problem was with the property “HttpHeaders” (WCF property
    schema), where we are writing the “content-type” in our custom pipeline component. It seems that for some reason the value of this property ain’t properly read after a first message went thought successfully.
    Why do I say successfully? Well…
    If there’s an error on send the message and the message gets dehydrated or suspended, the HttpHeaders seems to be “reseted” and read again, and everything goes as it should.
    If the message went to successfully regardless of the response, the issue that I describe will happen.
    Restarting the host instance seems to have no effect.
    Sometime after the first message went thought successfully, HttpHeaders seem to be “reseted” and read again. Although I don’t know how much time, at least something above 15min.
    Stop\Start the send seems to force an “reset” on the property.
    Just to make clear some eventual questions, HttpHeaders is correctly written into context before entering the adapter, after the message went thought the adapter, we can see on fiddler that the message isn’t as it should.
    I did some code to replicate this issue, and my Execute method on pipeline goes like this:
    public Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(IPipelineContext pContext, Microsoft.BizTalk.Message.Interop.IBaseMessage pInMsg)
    Stream inMsgBodyStream = pInMsg.BodyPart.GetOriginalDataStream();
    pInMsg.Context.Write("HttpHeaders", "http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties",
    "content-type: multipart/mixed; boundary=batch_" + Guid.NewGuid().ToString());
    return pInMsg;
    I also try this behavior with the classic HTTP adapter, although another issues were raised, the fact is that Http Headers are correctly read between requests, so as far as we can tell this just happens with this adapter.
    Does anybody had similar issue? So far I haven’t found a solution.
    PS: I’m using Biztalk 2013 RTM
    Thanks

    Hey, someone else reported a similar issue with the WCF-WebHttp adapter for BizTalk 2013 - see this thread:
    http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/e477ad7a-505c-4f86-9556-8075d747e447. I will report your finding to Microsoft support.
    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline

Maybe you are looking for

  • 1080p apple tv hdmi issues in movie info page.

    Hi, anyone have an issue with the latest 1080p device and hdmi issues in the movie previews? With the new hardware I have an issue when I go to a movie preview; the image shifts green and then my tv loses sync. Thanks

  • I know it is stupid but what is the word processing program on the ibook software?

    I know it is stupid, but what is the word processing program installed on the ibook g4?

  • SAP Script :change position of window margins (resize window)

    Hi, how to change position of window margins (resize a window)? Sounds very simple, but when I open my SAPScript form in layout editing mode it does not allow me to change values of window margins... Regards, Mindaugas

  • JDK1.3: Regional Options

    Hi, I'm using Win2000 Prof platform for development. The Locale and Language in "Regional Options" were set to "Typical Chinese (Hong Kong)". When I use JDK1.3 to compile my Java programs, strange symbols and Chinese will be displayed if any output m

  • "/" in front of link in Property Inspector

    Hi- I am having a problem and can't figure out how to solve it. When ever I use the "point to file" feature in the property inspector to create a link in either the Source box or the Link box, DW(MX2004) automatically places a "/" - forward slash- in