BAPI_REQUISITION_CREATE & COMMIT

Hi, I'm using this BAPI, but it has an internal <b>commit</b>. I need to do the <b>commit</b> myself, any suggestions?
Thanks!!!
Lucas.
Message was edited by: Lucas Ignacio Alvarez

Ok, thanks.
But what happens if:
1) BAPI is OK and it does an internal COMMIT
2) the following logic fails, I check this and do a ROLL BACK
But the bapi is OK, and I don't want the data of the bapi in DB if the 2) fails.
Thats why I need to do the commit myself.
Thanks in advance.
Lucas.

Similar Messages

  • BAPI_REQUISITION_CREATE Problem with COMMIT WORK AND WAIT

    I ran into an issue and wanted to get your opinions about what might be happening.
    This is my original code that did not work correctly using COMMIT WORK AND WAIT. After the select statement, lv_count was zero even though there were PR items that had been created. I'm thinking that the database update was not complete, but why would that be?
        CALL FUNCTION 'BAPI_REQUISITION_CREATE'
          IMPORTING
            number            = lv_number
          TABLES
            requisition_items = gt_reqitem
            return            = gt_return.
    *   Purchase requisition has been created
        IF lv_number IS NOT INITIAL.
          COMMIT WORK AND WAIT.
    *     Get number of items in PR
          SELECT COUNT( DISTINCT bnfpo ) INTO lv_count
            FROM eban
            WHERE banfn = lv_number.
    This is my corrected code that works. I removed the AND WAIT from the commit statement and added a separate wait statement. I now get the correct number of PR items that were created.
        CALL FUNCTION 'BAPI_REQUISITION_CREATE'
          IMPORTING
            number            = lv_number
          TABLES
            requisition_items = gt_reqitem
            return            = gt_return.
    *   Purchase requisition has been created
        IF lv_number IS NOT INITIAL.
          COMMIT WORK.
          WAIT UP TO 1 SECONDS.
    *     Get number of items in PR
          SELECT COUNT( DISTINCT bnfpo ) INTO lv_count
            FROM eban
            WHERE banfn = lv_number.
    Any ideas?
    Brenda

    Brenda Bankert wrote:
    Yes, I was able to see the message in RETURN and no, I am not calling the FM in a loop. My program calls it one time.
    > Brenda
    If you were able to see the message 'Purchase requisition number & created' it means that the macro macro_end is getting executed within which the COMMIT WORK statement is encapsulated.
    I have quickly developed a dirty program to test the behaviour of 'SET UPDATE TASK LOCAL' and it seems to work as expected.
    Everytime I executed the below program with 'SET UPDATE TASK LOCAL', I see the value of lv_count as 1000, however if I execute the below program with out the statement  'SET UPDATE TASK LOCAL' the value of count varies everytime, typically around 10 - 15, however the database is successfully updated with all the 1000 entries, this makes me believe that the 'SET UPDATE TASK LOCAL' statement will infact make the subsequent COMMIT synchronous.
    REPORT zytest.
    DATA:
      ls_zytest    TYPE zytest,
      ls_db_zytest TYPE zytest,
      lv_numc04    TYPE numc4 VALUE 1001,
      lv_count     TYPE i,
      lv_index     TYPE i.
    DO 1000 TIMES.
      lv_index = sy-index.
      CLEAR ls_zytest.
      lv_numc04 = lv_numc04  + 1.
      CONCATENATE 'KF00' lv_numc04 INTO ls_zytest-keyfield1.
      CONCATENATE 'KF00' lv_numc04 INTO ls_zytest-keyfield2.
      SET UPDATE TASK LOCAL.
      CALL FUNCTION 'ZYTEST_BAPI'
        EXPORTING
          is_zytest = ls_zytest.
      SELECT SINGLE * FROM zytest INTO ls_db_zytest WHERE keyfield1 = ls_zytest-keyfield1
                                                      AND keyfield2 = ls_zytest-keyfield2.
      IF sy-subrc IS INITIAL.
        WRITE:/ lv_index, ls_db_zytest-keyfield1,ls_db_zytest-keyfield2.
        lv_count = lv_count + 1.
      ENDIF.
    ENDDO.
    WRITE:/ lv_count.
    FUNCTION zytest_bapi .
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(IS_ZYTEST) TYPE  ZYTEST
    DATA: transaction_id LIKE arfctid.
      clear transaction_id.
      macro_start.
      CALL FUNCTION 'ZYTEST_UPDATE' IN UPDATE TASK
        EXPORTING
          is_zytest = is_zytest.
      macro_end.
    ENDFUNCTION.
    FUNCTION ZYTEST_UPDATE.
    *"*"Update Function Module:
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(IS_ZYTEST) TYPE  ZYTEST
    INSERT zytest from is_zytest.
    ENDFUNCTION.
    definition of the database table 'ZYTEST'
    MANDT     MANDT
    KEYFIELD1     CHAR20
    KEYFIELD2     CHAR20
    NONKEYFIELD     CHAR50
    -Rajesh

  • BAPI_REQUISITION_CREATE: Err-No account assignment exists for service line

    Hi Frnds,
    I am using bapi BAPI_REQUISITION_CREATE to create PR with mutiple Service line.
    I am getting an error message SE518 - No account assignment exists for service line 0000000000.
    Can anyone of you help me out to solve this issue?
    Thanks in advance
    Suganya

    HI
    I need to create pucharse-requisition for services with account assignment K.
    execute BAPI_REQUISITION_CREATE with an item with a service and work well.
    When I prove with two items each one with its service gives east error me
    "E518, No account assignment exists for service line 0000000010"
    my source is:
    REPORT Z_WGS_BAPI_REQUISIT_CREATE_002
                                      NO STANDARD PAGE HEADING LINE-SIZE 180
                          START-OF-SLECTION                              *
    DATA:
    W_NUMBER             LIKE  BAPIEBANC-PREQ_NO,
    W_REQUISITION_ITEMS LIKE BAPIEBANC           OCCURS 0 WITH HEADER LINE,
    W_REQUISITION_ACCOUNT LIKE BAPIEBKN          OCCURS 0 WITH HEADER LINE,
    W_REQUISITION_SERVICES LIKE BAPIESLLC        OCCURS 0 WITH HEADER LINE,
    W_REQUISITION_SRV_VALUES LIKE BAPIESKLC      OCCURS 0 WITH HEADER LINE,
    W_RETURN             LIKE BAPIRETURN         OCCURS 0 WITH HEADER LINE,
    W_RETURN1            LIKE  BAPIRET2          OCCURS 0 WITH HEADER LINE.
    START-OF-SELECTION.
    perform item_10.
    perform item_20.
    perform bapi.
    form item_10.
    **Item 10
    W_REQUISITION_ITEMS-DOC_TYPE = 'NB'.
    W_REQUISITION_ITEMS-PREQ_ITEM = '00010'.
    W_REQUISITION_ITEMS-ACCTASSCAT = 'K'.
    W_REQUISITION_ITEMS-ITEM_CAT = '9'.
    W_REQUISITION_ITEMS-PUR_GROUP = 306.
    W_REQUISITION_ITEMS-PURCH_ORG = '9000'.
    W_REQUISITION_ITEMS-PLANT    = 'CO95'.
    W_REQUISITION_ITEMS-PREQ_NAME = 'EORTIZ'.
    W_REQUISITION_ITEMS-DELIV_DATE = SY-DATUM.
    W_REQUISITION_ITEMS-SHORT_TEXT = 'Servicio 1'.
    W_REQUISITION_ITEMS-MAT_GRP = 'SER-0005'.
    W_REQUISITION_ITEMS-QUANTITY = '1.000'.
    W_REQUISITION_ITEMS-PCKG_NO = '0000000001'.
    W_REQUISITION_ITEMS-GR_IND = 'X'.
    W_REQUISITION_ITEMS-IR_IND = 'X'.
    W_REQUISITION_ITEMS-FIXED_VEND = space.
    W_REQUISITION_ITEMS-INFO_REC = space.
    APPEND W_REQUISITION_ITEMS. CLEAR W_REQUISITION_ITEMS.
    W_REQUISITION_ACCOUNT-PREQ_ITEM = '00010'.
    W_REQUISITION_ACCOUNT-SERIAL_NO = '01'.
    W_REQUISITION_ACCOUNT-COST_CTR = '0001010106'.
    W_REQUISITION_ACCOUNT-G_L_ACCT = '0063010001'.
    APPEND W_REQUISITION_ACCOUNT. CLEAR W_REQUISITION_ACCOUNT.
    W_REQUISITION_SERVICES-PCKG_NO     =  '0000000001'.
    W_REQUISITION_SERVICES-LINE_NO     =  '0000000001'.
    W_REQUISITION_SERVICES-EXT_LINE    =  '0000000000'.
    W_REQUISITION_SERVICES-SUBPCKG_NO  =  '0000000002'.
    W_REQUISITION_SERVICES-FROM_LINE   =  '1'.
    W_REQUISITION_SERVICES-PLN_LINE   =  '0000000001'.
    APPEND W_REQUISITION_SERVICES. CLEAR W_REQUISITION_SERVICES.
    W_REQUISITION_SERVICES-PCKG_NO     =  '0000000002'.
    W_REQUISITION_SERVICES-LINE_NO     =  '0000000002'.
    W_REQUISITION_SERVICES-EXT_LINE    =  '0000000010'.
    W_REQUISITION_SERVICES-SUBPCKG_NO  =  '0000000000'.
    W_REQUISITION_SERVICES-SERVICE    =  '000000000003000001'.
    W_REQUISITION_SERVICES-QUANTITY   =  '5.000'.
    W_REQUISITION_SERVICES-BASE_UOM   =  'UN'.
    W_REQUISITION_SERVICES-GR_PRICE   =  '150.0000'.
    APPEND W_REQUISITION_SERVICES. CLEAR W_REQUISITION_SERVICES.
    W_REQUISITION_SRV_VALUES-PCKG_NO    =  '0000000002'.
    W_REQUISITION_SRV_VALUES-LINE_NO    =  '0000000002'.
    W_REQUISITION_SRV_VALUES-SERNO_LINE = '01'.
    W_REQUISITION_SRV_VALUES-SERIAL_NO  =  '01'.
    W_REQUISITION_SRV_VALUES-PERCENTAGE  = '100.0'.
    APPEND W_REQUISITION_SRV_VALUES. CLEAR W_REQUISITION_SRV_VALUES.
    endform.
    form item_20.
    item 20
    W_REQUISITION_ITEMS-DOC_TYPE =   'NB'.
    W_REQUISITION_ITEMS-PREQ_ITEM = '00020'.
    W_REQUISITION_ITEMS-ACCTASSCAT = 'K'.
    W_REQUISITION_ITEMS-ITEM_CAT = '9'.
    W_REQUISITION_ITEMS-PUR_GROUP = '306'.
    W_REQUISITION_ITEMS-PURCH_ORG = '9000'.
    W_REQUISITION_ITEMS-PLANT    = 'CO95'.
    W_REQUISITION_ITEMS-PREQ_NAME = 'EORTIZ'.
    W_REQUISITION_ITEMS-DELIV_DATE = SY-DATUM.
    W_REQUISITION_ITEMS-SHORT_TEXT = 'Servicio 2'.
    W_REQUISITION_ITEMS-MAT_GRP = 'SER-0005'.
    W_REQUISITION_ITEMS-QUANTITY = '1.000'.
    W_REQUISITION_ITEMS-PCKG_NO = '0000000003'.
    W_REQUISITION_ITEMS-GR_IND = 'X'.
    W_REQUISITION_ITEMS-IR_IND = 'X'.
    W_REQUISITION_ITEMS-FIXED_VEND = space.
    W_REQUISITION_ITEMS-INFO_REC = space.
    APPEND W_REQUISITION_ITEMS. CLEAR W_REQUISITION_ITEMS.
    W_REQUISITION_ACCOUNT-PREQ_ITEM = '00020'.
    W_REQUISITION_ACCOUNT-SERIAL_NO = '01'.
    W_REQUISITION_ACCOUNT-COST_CTR = '0001010106'.
    W_REQUISITION_ACCOUNT-G_L_ACCT = '0063010001'.
    APPEND W_REQUISITION_ACCOUNT. CLEAR W_REQUISITION_ACCOUNT.
    W_REQUISITION_SERVICES-PCKG_NO     =  '0000000003'.
    W_REQUISITION_SERVICES-LINE_NO     =  '0000000003'.
    W_REQUISITION_SERVICES-EXT_LINE    =  '0000000000'.
    W_REQUISITION_SERVICES-SUBPCKG_NO  =  '0000000004'.
    W_REQUISITION_SERVICES-FROM_LINE   =  '1'.
    APPEND W_REQUISITION_SERVICES. CLEAR W_REQUISITION_SERVICES.
    W_REQUISITION_SERVICES-PCKG_NO     =  '0000000004'.
    W_REQUISITION_SERVICES-LINE_NO     =  '0000000004'.
    W_REQUISITION_SERVICES-EXT_LINE    =  '0000000010'.
    W_REQUISITION_SERVICES-SUBPCKG_NO  =  '0000000000'.
    W_REQUISITION_SERVICES-SERVICE    =  '000000000003000002'.
    W_REQUISITION_SERVICES-QUANTITY   =  '10.000'.
    W_REQUISITION_SERVICES-BASE_UOM   =  'UN'.
    W_REQUISITION_SERVICES-GR_PRICE   =  '90.0000'.
    APPEND W_REQUISITION_SERVICES. CLEAR W_REQUISITION_SERVICES.
    W_REQUISITION_SRV_VALUES-PCKG_NO    =  '0000000004'.
    W_REQUISITION_SRV_VALUES-LINE_NO    =  '0000000004'.
    W_REQUISITION_SRV_VALUES-SERNO_LINE = '01'.
    W_REQUISITION_SRV_VALUES-SERIAL_NO  =  '01'.
    W_REQUISITION_SRV_VALUES-PERCENTAGE  = '100.0'.
    APPEND W_REQUISITION_SRV_VALUES. CLEAR W_REQUISITION_SRV_VALUES.
    endform.
    form bapi.
    BAPI
      CALL FUNCTION 'BAPI_REQUISITION_CREATE'
      EXPORTING
        SKIP_ITEMS_WITH_ERROR          =
       AUTOMATIC_SOURCE                = 'X'
        IMPORTING
          NUMBER                         = W_NUMBER
        TABLES
          REQUISITION_ITEMS              = W_REQUISITION_ITEMS
          REQUISITION_ACCOUNT_ASSIGNMENT = W_REQUISITION_ACCOUNT
        REQUISITION_ITEM_TEXT          =
        REQUISITION_LIMITS             =
        REQUISITION_CONTRACT_LIMITS    =
          REQUISITION_SERVICES           = W_REQUISITION_SERVICES
          REQUISITION_SRV_ACCASS_VALUES  = W_REQUISITION_SRV_VALUES
          RETURN                         = W_RETURN.
        REQUISITION_SERVICES_TEXT      =
        REQUISITION_ADDRDELIVERY       =
        EXTENSIONIN                    =
    ejecuta commit
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT   = 'X'
        IMPORTING
          RETURN = W_RETURN1.
      LOOP AT  W_RETURN.          .
        WRITE: / SY-TABIX,
        / 'W_RETURN-TYPE:', W_RETURN-TYPE,
        / 'W_RETURN-CODE:', W_RETURN-CODE,
        / 'W_RETURN-MESSAGE:', W_RETURN-MESSAGE,
        / 'W_RETURN-LOG_NO:', W_RETURN-LOG_NO,
        / 'W_RETURN-LOG_MSG_NO:', W_RETURN-LOG_MSG_NO,
        / 'W_RETURN-MESSAGE_V1:', W_RETURN-MESSAGE_V1,
        / 'W_RETURN-MESSAGE_V2:', W_RETURN-MESSAGE_V2,
        / 'W_RETURN-MESSAGE_V3:', W_RETURN-MESSAGE_V3,
        / 'W_RETURN-MESSAGE_V4:', W_RETURN-MESSAGE_V4.
        ULINE.
      ENDLOOP.
    endform.

  • BAPI_REQUISITION_CREATE-way to add components

    I am trying to create a purchase requsition by BAPI_REQUISITION_CREATE
    but need to find a way to add components to the new purchase requisition.

    Hi,
    I've seen this code in some sites. See it might help you.
    LOOP AT it_requisiton_items INTO wa_requisiton_items.
    READ TABLE it_vbap
    INTO wa_vbap
    WITH KEY posnr = wa_requisiton_items-bnfpo.
    v_matnr = wa_vbap-matnr18.
    v_bamei = wa_requisiton_items-meins.
    Build table for call to BAPI
    wa_requisition_items_bapi-doc_type = eban_s-bsart.
    wa_requisition_items_bapi-purch_org = v_ekorg.
    wa_requisition_items_bapi-deliv_date = wa_requisiton_items-lfdat.
    wa_requisition_items_bapi-preq_item = wa_requisiton_items-bnfpo.
    wa_requisition_items_bapi-quantity = wa_requisiton_items-menge.
    wa_requisition_items_bapi-unit = wa_requisiton_items-meins.
    wa_requisition_items_bapi-material = v_matnr.
    wa_requisition_items_bapi-item_cat = wa_requisiton_items-pstyp.
    wa_requisition_items_bapi-acctasscat = wa_requisiton_items-knttp.
    wa_requisition_items_bapi-des_vendor = wa_requisiton_items-lifnr.
    wa_requisition_items_bapi-fixed_vend = wa_requisiton_items-flief.
    wa_requisition_items_bapi-plant = wa_requisiton_items-werks.
    wa_requisition_items_bapi-store_loc = wa_requisiton_items-lgort.
    wa_requisition_items_bapi-c_amt_bapi = wa_requisiton_items-preis.
    wa_requisition_items_bapi-price_unit = wa_requisiton_items-peinh.
    wa_requisition_items_bapi-purch_org = wa_requisiton_items-ekgrp.
    wa_requisition_items_bapi-mat_grp = wa_requisiton_items-matkl.
    IF wa_requisition_items_bapi-deliv_date IS INITIAL.
    wa_requisition_items_bapi-deliv_date = wa_vbap-erdat.
    ENDIF. "wa_requisition_items_bapi-deliv_date
    APPEND wa_requisition_items_bapi TO it_requisition_items_bapi.
    CLEAR wa_requisition_items_bapi.
    ENDLOOP. "it_requisiton_items into wa_requisiton_items
    CALL FUNCTION 'BAPI_REQUISITION_CREATE'
    EXPORTING
    SKIP_ITEMS_WITH_ERROR =
    IMPORTING
    number = preq_no
    TABLES
    requisition_items = it_requisition_items_bapi
    requisition_account_assignment = it_requisition_assignment
    REQUISITION_ITEM_TEXT =
    REQUISITION_LIMITS =
    REQUISITION_CONTRACT_LIMITS =
    REQUISITION_SERVICES =
    REQUISITION_SRV_ACCASS_VALUES =
    return = it_return
    REQUISITION_SERVICES_TEXT =
    REQUISITION_ADDRDELIVERY =
    EXTENSIONIN =
    COMMIT WORK.

  • How can we remove the commas from the Formula value in SAP BW BEx query

    Hi All,
    How can we remove the commas from the Formula value in SAP BW BEx query
    We are using the formula replacing with characteristic.The characteristic value needs to be display as number with out commas.
    Regards
    Venkat.

    Do you want to remove the commas when you run the query on Bex Web or in RSRT?
    Regards

  • In import commit 100000 records

    Dear Friends,
    Please let me know whether in import any method is there to commit records for an interval of records say 100000. If we use commit=y and each table has 5M records, it take multiple days to complete.
    And if we don’t give commit=y, it requires enough memory buffers. Please let me know some good soln.
    Thanks
    VK

    Please use buffer parameter for this
    For more details:- http://www.oracleutilities.com/OSUtil/import.html
    Thanks
    Dattatraya Walgude

  • Comma delimited in Sql query decode function errors out

    Hi All,
    DB: 11.2.0.3.0
    I am using the below query to generate the comma delimited output in a spool file but it errors out with the message below:
    SQL> set lines 100 pages 50
    SQL> col "USER_CONCURRENT_QUEUE_NAME" format a40;
    SQL> set head off
    SQL> spool /home/xyz/cmrequests.csv
    SQL> SELECT
    2 a.USER_CONCURRENT_QUEUE_NAME || ','
    3 || a.MAX_PROCESSES || ','
    4 || sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby ||','
    5 ||sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'I',1,0),0)) Pending_Normal ||','
    6 ||sum(decode(b.PHASE_CODE,'R',decode(b.STATUS_CODE,'R',1,0),0)) Running_Normal
    7 from FND_CONCURRENT_QUEUES_VL a, FND_CONCURRENT_WORKER_REQUESTS b
    where a.concurrent_queue_id = b.concurrent_queue_id AND b.Requested_Start_Date <= SYSDATE
    8 9 GROUP BY a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSES;
    || sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby ||','
    ERROR at line 4:
    ORA-00923: FROM keyword not found where expected
    SQL> spool off;
    SQL>
    Expected output in the spool /home/xyz/cmrequests.csv
    Standard Manager,10,0,1,0
    Thanks for your time!
    Regards,

    Get to work immediately on marking your previous questions ANSWERED if they have been!
    >
    I am using the below query to generate the comma delimited output in a spool file but it errors out with the message below:
    SQL> set lines 100 pages 50
    SQL> col "USER_CONCURRENT_QUEUE_NAME" format a40;
    SQL> set head off
    SQL> spool /home/xyz/cmrequests.csv
    SQL> SELECT
    2 a.USER_CONCURRENT_QUEUE_NAME || ','
    3 || a.MAX_PROCESSES || ','
    4 || sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby ||','
    5 ||sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'I',1,0),0)) Pending_Normal ||','
    6 ||sum(decode(b.PHASE_CODE,'R',decode(b.STATUS_CODE,'R',1,0),0)) Running_Normal
    7 from FND_CONCURRENT_QUEUES_VL a, FND_CONCURRENT_WORKER_REQUESTS b
    where a.concurrent_queue_id = b.concurrent_queue_id AND b.Requested_Start_Date <= SYSDATE
    8 9 GROUP BY a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSES;
    || sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby ||','
    >
    Well if you want to spool query results to a file the first thing you need to do is write a query that actually works.
    Why do you think a query like this is valid?
    SELECT 'this, is, my, giant, string, of, columns, with, commas, in, between, each, word'
    GROUP BY this, is, my, giant, stringYou only have one column in the result set but you are trying to group by three columns and none of them are even in the result set.
    What's up with that?
    You can only group by columns that are actually IN the result set.

  • Splitting comma seperated column data into multiple rows

    Hi Gurus,
    Please help me for solving below scenario. I have multiple value in single column with comma seperated values and my requirement is load that data into multiple rows.
    Below is the example:
    Source Data:
    Product         Size                                 Stock
    ABC              X,XL,XXL,M,L,S                 1,2,3,4,5,6
    Target Data:
    Product         Size                                 Stock
    ABC              X                                     1
    ABC              XL                                   2
    ABC              XXL                                 3
    ABC              M                                    4
    ABC              L                                      5
    ABC             S                                        6
    Which transformation we need to use for getting this output?
    Thanks in advance !

    Hello,
    Do you need to do this tranformation through OWB mapping only? And can you please tell what type of source you are using? Is it a flat file or a table?
    Thanks

  • DS sends updates to DB only in commit (can't find modified data in same TX)

    Hello experts!
    We have a physical data service mapping a simple Oracle database table. When we update one record in the database (invoking submit on the DS), and use a function in that same dataservice to get the refreshed record, the updated column comes with the OLD value. But after the transaction ends (we isolated this is a simple JWS), the database gets updated.
    The most strange fact: we also did a test using another Data Service to do the update, now mapping a stored procedure to do the updates (without commits in body). Then the test works fine.
    The conclusion I can reach is DSP is holding the instance somewhere after the submit() and is not sending it to the database connection. I understand that the commit is not performed, but if I do a query in the same TX, I should see my changed, shouldn't I?
    We use WL 8.1.6 with DSP 2.5.
    We´d appreciate very much if yuo guys could help.
    Thanks,
    Zica.

    Let me get your scenario straight
    client starts a transaction
    client calls submit to update a data services
    client calls read to re-read the update value (does not see update)
    client ends the transaction
    If you read now, you will see the update
    And you're wondering why the first read doesn't seem the update values?
    By default, ALDSP 2.5 reads are through an EJB that has trans-attrib=NotSupported - which means if you do a read within a transaction, that transaction is suspended the call is made without any transaction, then the transaction is resumed. So this is one reason you don't see the read. To do the read via an EJB method with trans-attribute=Required. See TRANSACTION SUPPORT at http://e-docs.bea.com/aldsp/docs25/javadoc/com/bea/dsp/dsmediator/client/DataServiceFactory.html
    If you are using the control, the control will need to specify
    @jc:LiquidData ReadTransactionAttribute="Required"
    That is only part of the solution. You will also need to configure your connection pool with the property KeepXAConnTillTxComplete="true" to ensure that your read is on the same connection as your write.
    <JDBCConnectionPool CapacityIncrement="2"
    KeepXAConnTillTxComplete="true" />
    Then I have to ask - if your client already has the modified DataObject in memory, what's the purpose of re-reading it? If all you need is a clean ChangeSummary so you can do more changes (the ChangeSummary is not cleared when you call submit), you can simply call myDataObject..getDataGraph().getChangeSummary().beginLogging()

  • SQL Developer can't commit edited data in Table Data pane

    When I try to commit changes in "Data" pane for selected table SQL Developer gives me a strange error:
    One error saving changes to table "TABLENAME".:
    Row XXX: Data got commited in another/same session, cannot update row.
    I can see in the log that SQL Developer tries to do something like:
    UPDATE "TABLENAME" set "COLUMN"="value1" where ROWNUM="xxxx1" and ROW_SCN=nnn1;
    UPDATE "TABLENAME" set "COLUMN"="value2" where ROWNUM="xxxx2" and ROW_SCN=nnn1;
    UPDATE "TABLENAME" set "COLUMN"="value3" where ROWNUM="xxxx3" and ROW_SCN=nnn2;
    If I update the same rows in SQL window by other condition and do commit - all is OK. Why so strange behaivour?
    My table has not a primary key and no other users try to change it. SQL Developer version 3.0.04 and Oracle 10.2.0.4 Linux.
    Best regards,
    Sergey Logichev

    That's because the inaccuracy of ROW_SCN.
    I suggest you turn off Preferences - Database - ObjectViewer - Use ORA_ROWSCN (as I did the very moment we got the option).
    Have fun,
    K.

  • Materialized view - REFRESH FAST ON COMMIT - UNION ALL

    In a materialized view which uses REFRESH FAST ON COMMIT to update the data, how many UNION ALL can be used.
    I am asking this question because my materialized view works fine when there are only 2 SELECT statement (1 UNION ALL).
    Thank you.

    In a materialized view which uses REFRESH FAST ON COMMIT to update the data, how many UNION ALL can be used.As far as I remember you can have 64K UNIONized selects.
    I am asking this question because my materialized view works fine when there are only 2 SELECT statement (1 UNION ALL).Post SQL that does not work.

  • After call commit sql , data can not flush to disk

    I use berkey db which support sql . It's version is db-5.1.19.
    1, Open a database.
    2. Create a table.
    3. exec "begin;" sql
    4. exec sql which is insert record into table
    5. exec "commit;" sql
    6. copy database file (SourceDB_912_1.db and SourceDB_912_1.db-journal) to Local Disk of D, then use a tool of dbsql to open the database.
    7. use select sql to check data, there is no record in table.
    1
    sqlite3 * m_pDB;
    int nRet = sqlite3_open_v2(strDBName.c_str(), & m_pDB,SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,NULL);
    2
    string strSQL="CREATE TABLE [TBLClientAccount] ( [ClientId] CHAR (36), [AccountId] CHAR (36) );";
    char * errors;
    nRet = sqlite3_exec(m_pDB, strSQL.c_str(), NULL, NULL, &errors);
    3
    nRet = sqlite3_exec(m_pDB, "begin;", NULL, NULL, &errors);
    4
    nRet = sqlite3_exec(m_pDB, "INSERT INTO TBLClientAccount (ClientId,AccountId) VALUES('dd','ddd'); ", NULL, NULL, &errors);
    5
    nRet = sqlite3_exec(m_pDB, "commit;", NULL, NULL, &errors);
    Edited by: 887973 on Sep 27, 2011 11:15 PM

    Hi,
    Here is a simple test case program I used based on your description:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "sqlite3.h"
    int error_handler(sqlite3*);
    int main()
         sqlite3 *m_pDB;
         const char *strDBName = "C:/SRs/OTN Core 2290838 - after call commit sql , data can not flush to disk/SourceDB_912_1.db";
         char * errors;
         sqlite3_open_v2(strDBName, &m_pDB, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
         error_handler(m_pDB);
         sqlite3_exec(m_pDB, "CREATE TABLE [TBLClientAccount] ( [ClientId] CHAR (36), [AccountId] CHAR (36) );", NULL, NULL, &errors);
         error_handler(m_pDB);
         sqlite3_exec(m_pDB, "begin;", NULL, NULL, &errors);
         error_handler(m_pDB);
         sqlite3_exec(m_pDB, "INSERT INTO TBLClientAccount (ClientId,AccountId) VALUES('dd','ddd'); ", NULL, NULL, &errors);
         error_handler(m_pDB);
         sqlite3_exec(m_pDB, "commit;", NULL, NULL, &errors);
         error_handler(m_pDB);
         //sqlite3_close(m_pDB);
         //error_handler(m_pDB);
    int error_handler(sqlite3 *db)
         int err_code = sqlite3_errcode(db);
         switch(err_code) {
         case SQLITE_OK:
         case SQLITE_DONE:
         case SQLITE_ROW:
              break;
         default:
              fprintf(stderr, "ERROR: %s. ERRCODE: %d.\n", sqlite3_errmsg(db), err_code);
              exit(err_code);
         return err_code;
    }Than I copied the SourceDB_912_1.db database and the SourceDB_912_1.db-journal directory containing the environment files (region files, log files) to D:\, opened the database using the "dbsql" command line tool, and queried the table; the data is there:
    D:\bdbsql-dir>ls -al
    -rw-rw-rw-   1 acostach 0 32768 2011-10-12 12:51 SourceDB_912_1.db
    drw-rw-rw-   2 acostach 0     0 2011-10-12 12:51 SourceDB_912_1.db-journal
    D:\bdbsql-dir>C:\BerkeleyDB\db-5.1.19\build_windows\Win32\Debug\dbsql SourceDB_912_1.db
    Berkeley DB 11g Release 2, library version 11.2.5.1.19: (August 27, 2010)
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    dbsql> .tables
    TBLClientAccount
    dbsql> .schema TBLClientAccount
    CREATE TABLE [TBLClientAccount] ( [ClientId] CHAR (36), [AccountId] CHAR (36) );
    dbsql> select * from TBLClientAccount;
    dd|dddI do not see where the issue is. The data can be successfully retrieved, it is present in the database.
    Could you try putting in the sqlite3_close() call and see if you still get the error?
    Did you remove the __db.* files from the SourceDB_912_1.db-journal directory?
    Did you use PRAGMA synchronous, and if so, what is the value you set?
    If this is still an issue for you, please describe in more detail the exact steps needed to get this reproduced and provide a simple stand-alone test case program that reproduces it.
    Regards,
    Andrei

  • How to Capture Commit Point in Forms

    Dear Members,
    We are on E-Business Suite 11.5.10.2.
    We are trying to change the behavior of AP Invoice Work Bench form through CUSTOM.pll.
    When you try to reverse an existing distribution line, then oracle does a lot of validations and many triggers are fired until commit occurs.
    I turned on custom events and found WHEN-VALIDATE-RECORD trigger fires 14 times until commit occurs at the end.
    MY question is how can we know the commit occurred. I mean in custom.pll i need to write some logic where i need to take some field values in a block at the very end when commit occurs. The field values that i am talking about keep changing from the start to the end and i want to capture the values at the point commit occurs,
    Is there any means to know that commit occurred; so that i can retrieve values at that moment.
    Thanks
    Sandeep

    Try to debug the Block_status for line.I will regularly change from change mode to some mode for commit.

  • CO54: Message is not sent to any destination: Commit Work is getting failed

    Hello,
    While processing the Messages from XFP to SAP Update is getting terminated due to the use of Commit Work. SAP Note 147467 - Update termination when sending process messages has been referred which is for 4.6C, but we are in ECC6.0.
    While processing the message in second iteration Commit Work triggres and Update happens in the data base.
    Following Issue is only concerned with Nested HUs
    T-Code used CO54
    Following are the analysis:
    it looks like u201CCreate and Post a Physical Inventory Docu201D is failing in the initial processing because the inventory doc is created when the Transfer Order to the PSA (or the TO from the PSA) is not yet completed (quant is still locked somehow).
    CO54, process message category=ZHU_CONS: HU to be consumed is a nested pallet (unpacking/ repacking and TOs to/from) and qty to consume is greater that HU qty in SAP (creation of a physical inventory doc is required).
    1. The error occurs while clearing the inventory posting for the physical inventory document.
    2. The surprising factor is the u201CProcess Messageu201D is not processed correctly for the first time.
    3. Indeed it is successfully processed without any error if you do process it second time.
    Error Log from C054 T-Code.
    02.08.2010                                         Dynamic List Display                                                1
    Type
    Message text
    LTxt
    Message category: ZHU_CONS ---    Process message: 100000000000000621   "Send to All Destinations" Is Active
    Message to be sent to destination:
    ZHGI ZPP_0285_XFP_GOODSISSUE Individual Processing Is Active
    => Message will be sent to destination (check log for destination)
    Message category: ZHU_CONS ---    Process message: 100000000000000621   "Send to All Destinations" Is Active
    Message destination ZPP_0285_XFP_GOODSISSUE triggered COMMIT WORK
    Input parameters OK, passed to source field structure
    Step 0: Now checking if scenario with HU
    Step 2: Scenario with HU, Now checking if HU nested
    Step 3: HU nested, checking if HU in repack area
    Step 4: HU not in repack area, moving it to repack area
    HU moved to repack area, TO number 0000000873
    Step 5: Depacking nested HU...
    Nested HU depacked, HU pallet n°: 00176127111000461994
    Steps 6-7: Moving back HUs to supply storage type / bin...
    HU 00376127111000462001 moved back to original area with TO number 0000000875
    Steps 6-7: Moving back HUs to supply storage type / bin...
    No need to move back HU 00176127111000461994 (not in table LEIN)
    Step 8: Checking if HU fully used and quantity matches HU system quantity
    HU not fully used but picked quantity > HU quantity: inventory necessary
    Step 9: Inventory needed, creating physical inventory document...
    Physical inventory document 0000000126 created
    Step 10: Adding weighted quantity on inventory document...
    Weighted quantity entered in document 0000000126
    Step 11: Posting rectification in inventory document 0000000126...
    Physical inventory document 0000000126 rectified
    Error: rectification for doc 0000000126 not updated in DB!
    => Destination ZHGI ZPP_0285_XFP_GOODSISSUE can currently not process the message
    => Message is not sent to any destination
    The errors in SM13 for this contain the program SAPLZPP_0285_HUINV_ENH (creating/changing the HUM physical inventory doc). WM Function module L_LK01_VERARBEITEN is also involved.
    From SM13, it displays the following piece of code in include LL03TF2M (read the LEIN table=Storage Units table):
    WHEN CON_LK01_NACH.
           IF (LEIN-LGTYP = LK01-NLTYP AND         
                 LEIN-LGPLA = LK01-NLPLA) OR
                  NOT P_LEDUM IS INITIAL.
           ELSE.
    Das ist der Fall einer TA-Quittierung wo Von-Hu = Nach-HU ist und sofort die WA-Buchung erfolgt. Dann steht die HU noch auf dem Von-Platz, daher darf hier kein Fehler kommen, sondern es wird ein. Flag gesetzt, daß verhindert daß die LE fortgeschrieben wird.
             FLG_NO_LE_UPDATE = CON_X.
            MESSAGE A558 WITH P_LENUM.
           ENDIF.
    Translation in English of the German text via Google:
    "This is the case where confirmation of a TO source-HU = destination-HU, and now the WA (Good Issue?)- made book. Then, the HU is still on the From-space may therefore come here not a mistake, but it sets a flag that prevents that the LE is updated."
    Thanks and Regards,
    Prabhjot Singh
    Edited by: Prabhjot  Singh on Aug 2, 2010 4:39 PM

    Hope you have carried out following things in Production ( Please refer to SAP help before actually doing it in production).
    1. Transport the predefined characteristics from the SAP reference client (000) to your logon client.
    2. Adopt Predefined Message Categories - In this step, you copy the process message categories supplied by SAP from internal tables as Customizing settings in your plants.

  • Failed to commit objects to server. Error while publishing reports from BW

    Hi,
    I am getting below error while publishing reports from BW to BO.
    "0000000001 Unable to commit the changes to Enterprise. Reason: Failed to commit objects to server : #Duplicate object name in the same folder."
    Anyone having any solution for this. Thanks in advance.

    Hi Amit
    It would be great if you could add a little info about how you solved this issue. Others might run into similar situations - I just did:-(
    Thank you:-)

Maybe you are looking for