WHEN DOES UPDATE  HAPPEN IN JDBC SENDER Adapater

Hi folks ,
I am using jdbc sender adapater to call RFC function and the o/p pf the RFC i am writing to the file
This is my select query
SELECT * FROM ULIDTA2.F5631505 WHERE QSINTF='N'
and mu update query is
Update ULIDTA2.F5631505 set QSINTF='Y' where QSINTF='N'
now the slect returns multiple rows and  i  want the rfc to be called depending on the number of rows i get 4m select . but wht is happening is i find that seleect picks the first row calls the rfc writes to the file and updates the query .
hence other rows are not able to be processed .
does jdbc sender update as soon as it picks the select query . how do i update one row at a time .
thks
amit

Hi Amit,
I dont think one row at a time is possible with the SELECT query as the JDBC adapter is going to return all the rows that satisfy your query.
One work around would be to develop a Stored Procedure in your Datbase, and then use the same Stored Procedure as your select query. Now, tits the task of the stored procedure to make sure only one row is selected at a time.
Just look at Query SQL Statement part ubnder this link,
http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
Regards,
Bhavesh

Similar Messages

  • Execution time difference between SELECT & UPDATE statement in JDBC Sender.

    Hi Experts,
    In my scenario, I have used the JDBC Sender Adapter with the SELECT and UPDATE statement.
    Now the problem is in between the execution of Select and update statement, few more entries are coming in the same DB Table.
    So result of this is updation take place for those entries which are not even picked up by the select statement.
    Can we avoid this execution time difference between the SELECT & UPDATE statemet on JDBC Sender side???
    Thanks & Regards
    Jagesh

    Hi
    Use serializable option in additional parameters, now all new entries would also be updated.

  • Update- statement in JDBC sender Adapter

    Hi ,
    I have a requirement where I am trying to fetch data from ODS based on some flag and immediately I want to update the flag status . So I used selected and update in JDBC sender adapter .
    But I have one question , in the small timeframe where  XI has done a select and just before  XI could  issue the update statement  if a new record is added to ODS . Then  that new record will also get updated though it wasnot selected in select statement .
    Can someone let me know how to overcome this problem ; as I want to make sure I update only those recrods which are selected in select statement ??
    Thanks & Regards,
    Suvarna

    Hi,
    Check out the following thread. It gives the exact answer to this question.
    JDBC Sender Update Query
    One of the replies in the above thread:
    I put in an OSS note asking this exact question with your specific example, and got a reply. I was referred to OSS note 0000831162, where it is explained very unambiguously that the SELECT and UPDATE queries are run in the same transaction.
    Regards,
    P.Venkat
    Message was edited by:
            Venkataramanan

  • Update sentence in JDBC SENDER

    Hi mates,
    I have a doubt about a sentence update in JDBC SENDER adater.
    This update we apply, is from all the Database or from de Select we do??
    Thanks a lot

    Hi,
    The databasename is specified in the connection string. The update statement will have scope of only this database.
    Ideally the update statement should have the same where conditions as the select statement, so that exactly the same records are updated which are selected.
    To be doubly sure of the sync between select and update statements check the DB issolation level parameter in JDBC sender adapter.
    Hope this helps.
    Regards,
    Siddhesh S.Tawate

  • When does GC happen

    I used -verbose:gc flag with java and found that GC seems to happen too many times, as I see a big number of stmts like
    [GC 5829K->4727K(130816K), 0.0299689 secs]
    As you can see there is no need of memory(130k is free), so GC is not really necessary. My question is, when does Java do GC? The answer might be different for JDK 1.2, 1.3 & 1.4, I have started using 1.4 now.
    Thanks.
    santosh

    why would my code depend on GC time? Usually it doesn't, but some programs are depend on running consistently without stopping execution at random times to run the garbage collector.
    Here's an example. Suppose you were writing a program that controlled a robot like the honda p2 (http://world.honda.com/robot/), and more specifically how to make the robot walk down stairs. Now the robot can make a step, and in mid stride it could run the GC. If the robot is not balanced when the GC runs, it would fall down & break. You would need to controll when the GC runs so it only runs when there is no movement.
    Now this situations does not apply to most people, but it demonstrates the point that for some programs the execution time is critical, and the GC could cause serious problems to the entire system if it executes at bad times. A few months ago I saw a post from a person who had problems with this very thing.

  • JDBC:ODBC Crashes in driver when doing update

    I am getting a crash in the native code when trying to update a record through an updateable record set using the JDBC:ODBC bridge. I have appended the crash information at the bottom of this message gotten from the Forte output window. This is going to SQL Server 2000. Through the Beta JDBC driver everything works fine, but through ODBC it always crashes no matter what columns I pick so it doesn't seem to be data type related. I would just use the JDBC driver, but that is not a option for some of our clients. I have used Insert statements without a problem, but one of the fields in one table is a BLOB field and I don't know of any way to access it except through an updatable record set.
    Does anyone have any ideas about how I might get around this?
    Thanks
    Scott Herter
    Napersoft, Inc.
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x411611BD
    Function=Ordinal78+0x11BD
    Library=C:\WINNT\System32\SQLSRV32.dll
    Current Java thread:
    at sun.jdbc.odbc.JdbcOdbc.setPos(Native Method)
    at sun.jdbc.odbc.JdbcOdbc.SQLSetPos(JdbcOdbc.java:4709)
    at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(JdbcOdbcResultSet.java:5019)
    at sun.jdbc.odbc.JdbcOdbcResultSet.updateRow(JdbcOdbcResultSet.java:4053)
    at DBTest.UpdateBlob(DBTest.java:445)
    at DBTest.main(DBTest.java:64)
    Dynamic libraries:
    0x00400000 - 0x00406000 G:\Forte\JDK14~1.0\bin\java.exe
    0x77F80000 - 0x77FFB000 C:\WINNT\System32\ntdll.dll
    0x77DB0000 - 0x77E0C000 C:\WINNT\system32\ADVAPI32.dll
    0x77E80000 - 0x77F35000 C:\WINNT\system32\KERNEL32.DLL
    0x77D40000 - 0x77DAD000 C:\WINNT\system32\RPCRT4.DLL
    0x78000000 - 0x78046000 C:\WINNT\system32\MSVCRT.dll
    0x6D330000 - 0x6D442000 G:\Forte\JDK14~1.0\jre\bin\client\jvm.dll
    0x77E10000 - 0x77E74000 C:\WINNT\system32\USER32.dll
    0x77F40000 - 0x77F7C000 C:\WINNT\system32\GDI32.DLL
    0x77570000 - 0x775A0000 C:\WINNT\System32\WINMM.dll
    0x6D1D0000 - 0x6D1D7000 G:\Forte\JDK14~1.0\jre\bin\hpi.dll
    0x6D300000 - 0x6D30D000 G:\Forte\JDK14~1.0\jre\bin\verify.dll
    0x6D210000 - 0x6D228000 G:\Forte\JDK14~1.0\jre\bin\java.dll
    0x6D320000 - 0x6D32D000 G:\Forte\JDK14~1.0\jre\bin\zip.dll
    0x6D260000 - 0x6D27C000 G:\Forte\JDK14~1.0\jre\bin\jdwp.dll
    0x6D160000 - 0x6D166000 G:\Forte\jdk1.4.0\jre\bin\dt_shmem.dll
    0x6D2D0000 - 0x6D2DD000 G:\Forte\jdk1.4.0\jre\bin\net.dll
    0x75050000 - 0x75058000 C:\WINNT\System32\WSOCK32.dll
    0x75030000 - 0x75043000 C:\WINNT\System32\WS2_32.DLL
    0x75020000 - 0x75028000 C:\WINNT\System32\WS2HELP.DLL
    0x785C0000 - 0x785CC000 C:\WINNT\System32\rnr20.dll
    0x77980000 - 0x779A4000 C:\WINNT\System32\DNSAPI.DLL
    0x77340000 - 0x77353000 C:\WINNT\System32\iphlpapi.dll
    0x77520000 - 0x77525000 C:\WINNT\System32\ICMP.DLL
    0x77320000 - 0x77337000 C:\WINNT\System32\MPRAPI.DLL
    0x75150000 - 0x75160000 C:\WINNT\System32\SAMLIB.DLL
    0x75170000 - 0x751BF000 C:\WINNT\System32\NETAPI32.DLL
    0x77BE0000 - 0x77BEF000 C:\WINNT\System32\SECUR32.DLL
    0x751C0000 - 0x751C6000 C:\WINNT\System32\NETRAP.DLL
    0x77950000 - 0x7797A000 C:\WINNT\system32\WLDAP32.DLL
    0x77A50000 - 0x77B3A000 C:\WINNT\system32\OLE32.DLL
    0x779B0000 - 0x77A4B000 C:\WINNT\system32\OLEAUT32.DLL
    0x773B0000 - 0x773DE000 C:\WINNT\System32\ACTIVEDS.DLL
    0x77380000 - 0x773A2000 C:\WINNT\System32\ADSLDPC.DLL
    0x77830000 - 0x7783E000 C:\WINNT\System32\RTUTILS.DLL
    0x77880000 - 0x7790D000 C:\WINNT\System32\SETUPAPI.DLL
    0x77C10000 - 0x77C6E000 C:\WINNT\System32\USERENV.DLL
    0x774E0000 - 0x77512000 C:\WINNT\System32\RASAPI32.DLL
    0x774C0000 - 0x774D1000 C:\WINNT\System32\RASMAN.DLL
    0x77530000 - 0x77552000 C:\WINNT\system32\TAPI32.DLL
    0x716F0000 - 0x7177A000 C:\WINNT\system32\COMCTL32.DLL
    0x70BD0000 - 0x70C1C000 C:\WINNT\system32\SHLWAPI.DLL
    0x77360000 - 0x77379000 C:\WINNT\System32\DHCPCSVC.DLL
    0x775A0000 - 0x77625000 C:\WINNT\System32\CLBCATQ.DLL
    0x777E0000 - 0x777E8000 C:\WINNT\System32\winrnr.dll
    0x777F0000 - 0x777F5000 C:\WINNT\System32\rasadhlp.dll
    0x74FD0000 - 0x74FEF000 C:\WINNT\system32\msafd.dll
    0x75010000 - 0x75017000 C:\WINNT\System32\wshtcpip.dll
    0x6D250000 - 0x6D25A000 G:\Forte\jdk1.4.0\jre\bin\JdbcOdbc.dll
    0x1F7F0000 - 0x1F825000 C:\WINNT\System32\ODBC32.dll
    0x76B30000 - 0x76B6E000 C:\WINNT\system32\comdlg32.dll
    0x782F0000 - 0x7852F000 C:\WINNT\system32\SHELL32.DLL
    0x1F8E0000 - 0x1F8F6000 C:\WINNT\System32\odbcint.dll
    0x41160000 - 0x411D3000 C:\WINNT\System32\SQLSRV32.dll
    0x41090000 - 0x410BD000 C:\WINNT\System32\SQLUNIRL.DLL
    0x77800000 - 0x7781D000 C:\WINNT\System32\WINSPOOL.DRV
    0x77820000 - 0x77827000 C:\WINNT\system32\VERSION.dll
    0x759B0000 - 0x759B6000 C:\WINNT\system32\LZ32.DLL
    0x769A0000 - 0x769A7000 C:\WINNT\System32\NDDEAPI.DLL
    0x0F470000 - 0x0F486000 C:\WINNT\System32\sqlsrv32.rll
    0x0F4A0000 - 0x0F4BA000 C:\WINNT\System32\odbccp32.dll
    0x74CB0000 - 0x74CC7000 C:\WINNT\System32\DBNETLIB.DLL
    0x75500000 - 0x75504000 C:\WINNT\System32\security.dll
    0x77440000 - 0x774B5000 C:\WINNT\System32\crypt32.dll
    0x77430000 - 0x77440000 C:\WINNT\System32\MSASN1.DLL
    0x782D0000 - 0x782EE000 C:\WINNT\system32\msv1_0.dll
    0x77BF0000 - 0x77C01000 C:\WINNT\System32\ntdsapi.dll
    0x74CD0000 - 0x74CD7000 C:\WINNT\System32\DBmsLPCn.dll
    0x77920000 - 0x77943000 C:\WINNT\system32\imagehlp.dll
    0x72A00000 - 0x72A2D000 C:\WINNT\system32\DBGHELP.dll
    0x690A0000 - 0x690AB000 C:\WINNT\System32\PSAPI.DLL
    Local Time = Thu Aug 22 11:40:22 2002
    Elapsed Time = 28
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.4.0-b92 mixed mode)
    # An error report file has been saved as hs_err_pid1804.log.
    # Please refer to the file for further information.

    I am no guru,
    but I have written BLOBS into DB2 via JDBC and I use a Prepared Statement, this works well for me.
    // Below is some code I originally mimicked and It worked well for me.
    // hope it it useful. I have never used SQLServer :-(
    import java.io.*;
    import java.sql.*;
    public void insertBlob( int rowid, byte[] bindata ) {
    // In this example I'm assuming there's an open, active
    // Connection instance called 'con'.
    // This examples uses an imaginary SQL table of the following
    // form:
    // CREATE TABLE blobs (
    //    ROWID INT NOT NULL,
    //    ROWDATA BLOB,
    //    PRIMARY KEY (rowid)
    try {
    ByteArrayInputStream bais = new ByteArrayInputStream(bindata);
    String sql = "INSERT INTO blobs ( rowid, rowdata ) VALUES ( ?, ? )";
    PreparedStatement ps = con.prepareStatement(sql);
    // Set up the parameter index for convenience (JDBC column
    // indices start from 1):
    int paramindex = 1;
    // Set the first parameter, the Row ID:
    ps.setInt(paramindex++, rowid);
    // Now set the actual binary column data by passing the
    // ByteArrayInputStream instance and its length:
    ps.setBinaryStream(paramindex++, bais, bindata.length);
    // Finally, execute the command and close the statement:
    ps.executeUpdate();
    ps.close();
    } catch ( SQLException se ) {
    System.err.println("Couldn't insert binary data: "+se);
    } catch ( IOException ioe ) {
    System.err.println("Couldn't insert binary data: "+ioe);
    } finally {
    con.close();
    }

  • Problem when doing update and commit at the same time...

    I want to "fusion" the update and commit event... I thought that if I added a jbo:Commit at the end of the update event,
    it would work. But, I get back an error message when running, and since this time, I can throw my project to trash:
    even if I get back to the previous version of my project ( the one that used to work ), I still have the message. The only
    solution for me is to shut down Jdeveloper, send to trashbin the project and to get back it from a saved backup...
    Has someone a way to fix it, please ?
    Regards,
    David

    Hi David,
    Could you please provide more details:
    1. What error message do you receive when running? Can you provide a stacktrace?
    2. What does the corrupt JSP page look like? Can you include the source for the page in your post?
    3. What error message(s) does the IDE provide when you try to reopen the project?
    Thanks,
    JR

  • When does PPR happen?

    I have a Search button with id: searchBtn and some outputText set to #{bindings.RealEmpId.inputValue} that is an attribute binding in my page def to show the value rather than the index of the option the user selects in a selectOneChoice list with id: selectEmpId.
    I have the PartialTrigger property of this outputText set to searchBtn. I tried with setting the property to selectEmpId alone, both and just searchBtn. When the page first loads the text is hidden based on #{userState.searchAccessFirstTime == false} but the searchBtn sets that with an actionListener.
    The text shows up when the user selects an EmpId. But if the user selects another EmpId replacing the first, the text is not updated. In attributeBindings is there a way to update the bound attribute if its base value is updated?
    Thanks,

    I did not do any 'coding' other than with expression language to achieve this. The problem is that the search comes up fine the first time, but if the user makes another selection in the list, the results are not refreshed. They remain based on the original selection.
    Can you think of another way to make this work? I've done search pages before in a similar fashion, so I don't know what is happening here.

  • I don't recall always having to enter admin. name and p/w when doing updates. Is this req't only for certain software. I am a bit paranoid now with the Mac Defender lurking about.

    When completing the software updates I can't remember always having to enter administrator name and password. Maybe it's just been automatic on my part but now I rethink the process when I am asked to enter this info since the Mac Defender malware became an issue with Mac. Just wanted to know if this procedure occurs with all software updates or is it selective based on the type of update? This time is concerned Airport. Thanks for any insight.

    Are you running as an Admin User or non-Admin? ie. have you set your Mac up with multiple user accounts - one as an Admin and one as a Standard user?
    For security, you are better off having an Admin user account that has Admin privileges and a Standard user account that you use from day to day with standard privileges. When you install system updates you will be required to enter an Admin name and password, and any software that needs access to the system will require an Admin name and password, but anything that you install just for your user account that doesn't require total system access will be able to be dragged and dropped into your Application folder as per usual.
    MacDefender runs in a web browser - that should be a huge red flag! If you see a warning when you are running Safari or another web browser close the browser window or Force Quit it. (under the Apple Menu => Force Quit...) In Safari Preferences untick Open "safe" files after downloading. (It will prevent an installer from automatically launching if something nasty is downloaded to your machine.) MacDefender and its variants attempt to trick people into installing stuff that will compromise their system. If something pops up unannounced on your machine that you didn't download, close it and delete it.
    This article goes into depth about the MacDefender Malware:
    http://rixstep.com/2/20110610,00.shtml
    The salient points are summed up in the "Recapitulate" section at the bottom of the article: It's a bit Hipster Geeky.
    "To Recapitulate
    As recounted elsewhere, the Mac Defender attack is a well thought out attack that may have taken months to get together. The first step was to compromise websites of eejits, hack their FTP accounts, and upload dynamited files to their servers.
    Then followed the Google whacks which led to people clicking on links they'd provided at the sites they'd hijacked.
    And then finally they uploaded Mac Defender so people would get hit by it. And the purpose of Mac Defender is to scare you into thinking you're infected so you pull out your credit card.
    Then the hackers run away with your credit card info and buy mink coats and chinchilla coats or whatever they want.
    But staying clear of Mac Defender is really easy and doesn't require any AV software.
    Don't ever open anything you didn't want to download.
    Turn off JavaScript when accessing any Google Images site.
    Make sure you don't have Safari set to automatically open downloads."
    I'd add, keep your software up to date. Especially Adobe's Flash Plug-in as this is no longer supplied in system updates by Apple and could become an attack vector in the future. Always download software from reputable sources - ie. when downloading the Flash plug-in, get it from Adobe directly - don't follow a link from a website that tells you your version of Flash is out of date.
    Enable your Firewall in System Preferences => Security => Firewall. Click on the Advanced button and Enable Stealth Mode too.
    Also under:
    System Preferences => Security => General.
    Disable Automatic Login. Require a password to unlock each System Preferences pane. Use secure virtual memory. Automatically update safe downloads list.
    Educate yourself.

  • Regarding Update querry at JDBC Sender adapter

    Dear all
    need you help for this requirement
    My Select statement is working fine   where flag column has some time null  value
    below is the Select statement  and ( EMP_MAXQTY_AUTH_FLAG   is Flag field  here &  EMPLOYEE_MST  is  table name)
    SELECT EMP_ORG_CD,EMP_CD,EMP_NAME,EMP_STATUS,EMP_MAXQTY_AUTH_FLAG  FROM EMPLOYEE_MST WHERE EMP_MAXQTY_AUTH_FLAG<>'Y'or EMP_MAXQTY_AUTH_FLAG is null
    but  update querry  is as given below
    UPDATE EMPLOYEE_MST  SET EMP_MAXQTY_AUTH_FLAG='Y' WHERE ((EMP_MAXQTY_AUTH_FLAG <>'Y') OR (EMP_MAXQTY_AUTH_FLAG is NULL))
    Please suggest the exact query
    if Flag row ahs some value any thing it is updating , but when there is NULL value ,
    problem is coming
    Please help.....
    Regards
    Priya

    Hi Priya,
    I think it is the mistake in query:
    SELECT EMP_ORG_CD,EMP_CD,EMP_NAME,EMP_STATUS,EMP_MAXQTY_AUTH_FLAG FROM EMPLOYEE_MST WHERE EMP_MAXQTY_AUTH_FLAG'Y'or EMP_MAXQTY_AUTH_FLAG is null
    means select all record whose *EMP_MAXQTY_AUTH_FLAG is 'Y' or Null *
    UPDATE EMPLOYEE_MST SET EMP_MAXQTY_AUTH_FLAG='Y' WHERE ((EMP_MAXQTY_AUTH_FLAG 'Y') OR (EMP_MAXQTY_AUTH_FLAG = ' '))
    means update those records where *EMP_MAXQTY_AUTH_FLAG is 'Y' or Null * and the new value to be updated is 'Y'
    Change your update query to
    UPDATE EMPLOYEE_MST SET EMP_MAXQTY_AUTH_FLAG='D' WHERE ((EMP_MAXQTY_AUTH_FLAG 'Y') OR (EMP_MAXQTY_AUTH_FLAG = ' '))
    Regards
    Suraj

  • Error X86 on I Tunes when doing update

    Tried doing I Tunes Update and got error message X86, could not load library.  Uninstalled and tryied reistalling and got same info.  Any resolution?

    what exactly is the error message.

  • Sourcing and source of supply - when does it happen?

    Hi Experts,
    Can anybody tell me how the sourcing / source of supply assignment works in standard classic scenario?
    This is the situation;
    Classic scenario.
    Price and vendor (and maybe even info record nr) are known in the internal catalog.
    Is the standard process (not sure if standard is the right word ) that you would transfer the price and vendor to the shopping cart? (price is needed for approval)
    Or can you also source already in the SHC? And get the price directly from ECC info record?
    Or is this sourcing done in the PO and not yet in the SHC?
    Are there any best practices on this? (sourcing / assigning directly from backend can prevent difference between catalog price and change price in info recordu2026delta due to timing)
    Any ideas or setups on how you did it could be helpful, so please let me know.
    Thanks in advance.
    Kind regards,
    Marius Hartman

    Can anybody tell me how the sourcing / source of supply assignment works in standard classic scenario?
    This is the situation;
    Classic scenario.
    Price and vendor (and maybe even info record nr) are known in the internal catalog.
    Internal catalog is totally different. Sc can be created via catalog also.
    nowadayas you can transfer info record to MADM and you can utilise be specific what is your internal catalog.
    Q1:-Is the standard process (not sure if standard is the right word ) that you would transfer the price and vendor to the shopping cart? (price is needed for approval)
    A1:- so this purchase inforecord price or contract price will not be considereed for sc approval process via internal goods and services.
    Q2:- Or can you also source already in the SHC? And get the price directly from ECC info record?
    A2:- while creating PO sc takes that proce from info record and creates a PO with info record/ contract price .while ordering cart , sc just takes material price.
    Or is this sourcing done in the PO and not yet in the SHC?
    PO will be created by the purchaser after assigning the vendor ,
    Are there any best practices on this? (sourcing / assigning directly from backend can prevent difference between catalog price and change price in info recordu2026delta due to timing).
    you can not change inforecord price in srm via sc.
    br
    muthu
    for materials valuation price is shown as sc price .

  • JDBC sender adapter: Update before mapping

    Dear all,
    following scenario:
    in a database we have a field called "statpi". We pick all messages that have statpi =  0 and
    update the data record to statpi = 1 via UPDATE function in JDBC sender adapter.
    Every select statement is limited to 100 data records for each message in PI.
    But if one data record is wrong and the mapping failed, of course the complete mapping failed.
    My problem: The update function of the JDBC sender adapter has already updated the
    data records, although they didn't have been send to target system.
    What I need is following thing: The adapter should send the messages and after PI has mapped
    the message and send it to target system, the UPDATE command should be executed.
    In my opinion, this is only possible with BPM, but I am not familiar with Advanced mode in JDBC
    sender adapter and "Transaction isolation level". Is there any workaround for this?
    Thanks
    Regards
    Chris

    Stefan Grube wrote:>
    > What happens, when new values have entered db meanwhile?
    The job that change the DB will be fixed on a certain time. We need to configure
    Availability Time Planning to be sure, that we start our select at another time.

    > > In ideal case the data records are still in statpi=0 and get picked up after
    > > the database team has fixed the problem and the adapter polls again.
    >
    > If the flag is not set, the JDBC adapter would poll the same data again and again.
    The adapter should poll every hour. Of course we will have some errors before the
    support is able to fix this problem, but because of one message each hour this should
    not be the main problem.
    > - You could do following: pass the values with an error flag, so you can handle this in receiver application,
    I am using the function formatNumber for the field that could raised the error. But to chekc if I am able
    to do a workaround here and let the target system fix the error sounds like an interessting possibility.
    > - Do a split mapping and create a file where you drop any wrong lines
    Also interessting. You mean that all "good" record should be mapped to struc1 and the bad one to struc2.
    I am thinking of how to determine which record is wrong. Perhaps with an UDF that checks for this special
    error.
    > - Use XML validation in sender adpter, so the messages are not processed.
    You are full of good ideas. I am not using validation yet and the mentioned field is define as string, but that
    is changeable. A good possibility to check the new capability of 7.1.
    > - use a stored procedure in DB whee you check data quality to send out.
    not sure what this is, but I will discuss with DB team.

  • JDBC Sender - Different number of records selected and updated.

    Hi people,
    We have a JDBC -> Abap proxy scenario. The JDBC sender is pooling an Oracle database to retrieve data from a table X, each 30 minutes. The select and update statements in jdbc sender are below
    SELECT FIELD1, FIELD2, FIELD3 FROM MY_TABLE WHERE STATUS = 1
    UPDATE MY_TABLE SET STATUS = 2 WHERE STATUS = 1
    Sometimes the message sent to Abap proxy has, for example, 400 records. Looking at runtime workbench, message monitoring, for the same message there is a log like this
    Channel SENDER_JDBC_CHANNEL: Query executed successfully. Start update
    Channel SENDER_JDBC_CHANNEL: 510 row(s) updated successfully
    Someone has already experienced something like this? How can I handle this to guarantee to update only those read records?
    regards.
    roberti

    Hi All,
    Even we are facing the same problem.
    In our scenario, receiver is SAPR3. (IDOC)
    Will this parameter serialization work in our case?
    1. SELECT XBLNR, WERKS, MATNR, MDV01, BACKFLQUANT, STATUS, SAPTIMESTAMP, PITSTIMESTAMP, PMTIMESTAMP, BATCH FROM PMBPITS.PITS_UNITY WHERE STATUS = '01' and rownum<200 . 
    2. UPDATE PMBPITS.PITS_UNITY SET STATUS = '02' , SAPTIMESTAMP = sysdate WHERE STATUS = '01' and rownum<200  ( currently the value is rownum < 5 )
    Thanks!!
    Regards
    Gouri

  • Stored Procedure call from JDBC sender for Oracle Database

    Hi,
    I have a requirement to call stored procedure using JDBC sender adapter for retriving data from an Oracle database.
    I need to execute first stored procedure call from Querry SQL statement and then trigger second stored procedure call for confirming the succesful retrival of those records from the update SQL statement.
    Querries:
    1. Can we trigger stored procedure from Update statement of JDBC sender.
    2. Can we call stored procedure from Querry statement, since I have read on other sdn threads that stored procedure calls on Oracle database are not allowed. If not possible to have "Execute stored procedure" would the function call (select * from table(function name)) work same as stored procedure.
    3. In a JDBC sender the Querry statement and Update statement are executed in same session call and same database connection. What happens if the querry statement was not succesful, would the update be still triggered.
    Please note PI does not have direct access to main table and hence the need to have separate stored procedure calls.
    The PI version is PI 7.11 sp4.
    Appreciate your inputs.
    Thanks.
    Siddhesh S.Tawate

    >1. Can we trigger stored procedure from Update statement of JDBC sender.
    I think not possible using update statement.
    > Can we call stored procedure from Querry statement, since I have read on other sdn threads that stored procedure calls on Oracle database are not allowed. If not possible to have "Execute stored procedure" would the function call (select * from table(function name)) work same as stored procedure.
    Yes using select query you can call stored procedure.
    >. In a JDBC sender the Querry statement and Update statement are executed in same session call and same database connection. What happens if the querry statement was not succesful, would the update be still triggered.
    No select and update handles in the same session using the same thread so if one transaction fails update should not proceed.

Maybe you are looking for

  • Disallow non digit input in a text field?

    Is there a class method in Java SDK to do this easily like in Visual Basic or has it to be coded completely manually? If the user presses a non digit character then that character should not be printed into the text field.

  • Vendor List in Company Code

    Hi All, How do I get Vendors maintained ONLY in a certain Company Code? MKVZ only shows vendors listed in Purchasing Orgs. Is there another std report users can run to see a list of vendors in CoCd? Thanks in advance.

  • Problem logging in SAP B1 2007 SP00 PL30

    Hi all. One of our SAP users is having a problem in logging in to SAP B1 2007. Last time, the user can login to SAP by just keying  the correct username and password. Now, the user will get an error message when she try to login to SAP using the same

  • TS1424 Hey everyone I'm having trouble with iTunes please help ASAP thank you.

    Hey I just bought an iPad and I can't connect to iTunes, seeing as I'm using my iPad right now I know the wifi works, I've tried a lot of different things and read the apple site for help but nothing worked, please help me thank you.

  • Freezing and Losing Songs

    I was just uploading a cd to my itunes, and surfing the web at the same time. my computer started to freeze, and go, freeze, and go, etc. and then it finally froze, and didnt do anything for about 5 minutes. I just sat there, and let it think. and i