Use of javax.jdo.Transaction in BMT

Sections 16.1.3 and 16.1.4 of the JDO spec (version 0.95) state that the
application code with a Bean Managed Transaction has the option of
getting a Persistence Manager before a UserTransaction is opened and
managing the transaction through the javax.jdo.Transaction interface.
When I attempt this in Kodo 2.1.2 (EE), I get the following exception
thrown:
javax.jdo.JDOUserException: The global UserTransaction must be used for
begin/commit/rollback.
at
com.techtrader.modules.jdo.ee.EEPersistenceManager.begin(EEPersistenceManager.java:62)
at
com.ysoft.jdo.book.restaurant.MenuManagerImpl.getObjectsByQuery(MenuManagerImpl.java:108)
Is this the expected behavior for Kodo? If so, it appears to be a bug.
If not, then perhaps I am doing something wrong.
David Ezzio
Yankee Software

You're right, we don't implement that feature of the spec yet. And
unfortunately, if we do implement it, we'll break another part of the
spec in doing so. Let me explain:
In enterprise situations, there are two requirements for transaction
management:
* In container-managed EJBs, the javax.jdo.Transaction interface cannot
be used and must throw an exception on begin/commit/rollback.
* In bean-managed EJBs, the javax.jdo.Transaction interface should tie
into the gobal UserTransaction and can be used for begin/commit/rollback.
Now, the problem is, there is absolutely no way for a generic JDO
implementation without appserver-specific hooks to know whether it is
being executed from a container managed or bean managed EJB. None. So
if we allow control of the UserTransaction through the
javax.jdo.Transaction, we'd have to allow all the time, including for
container managed beans.
The good news is that most EJB containers will detect our messing with
the transaction state manually in a container-managed EJB and throw the
proper Exception themselves, so we could probably get away with this.
And in fact this is exactly what we plan to do -- go ahead and always
allow transaction management through the javax.jdo.Transaction interface
and hope containers detect errors themselves.
Well, I'm sure that was much more information than you needed :)
Anyway, expect to see this feature implemented in the next version of
the Enterprise Edition, due out next month.
-- Abe White
Kodo Product Team
David Ezzio wrote:
Sections 16.1.3 and 16.1.4 of the JDO spec (version 0.95) state that the
application code with a Bean Managed Transaction has the option of
getting a Persistence Manager before a UserTransaction is opened and
managing the transaction through the javax.jdo.Transaction interface.
When I attempt this in Kodo 2.1.2 (EE), I get the following exception
thrown:
javax.jdo.JDOUserException: The global UserTransaction must be used for
begin/commit/rollback.
at
com.techtrader.modules.jdo.ee.EEPersistenceManager.begin(EEPersistenceManager.java:62)
at
com.ysoft.jdo.book.restaurant.MenuManagerImpl.getObjectsByQuery(MenuManagerImpl.java:108)
Is this the expected behavior for Kodo? If so, it appears to be a bug.
If not, then perhaps I am doing something wrong.
David Ezzio
Yankee Software

Similar Messages

  • How to use DataSource and External transaction in 9ias?

    I'm working on a project that the application server needs to connect to over 100 databases.
    I'd like to use connection pooling and external transaction service defined in OC4J's Datasources.
    I wonder if anyone has an example of using datasource and external transaction service for OC4J.
    Right now, I export toplink project to a java source and do the initialization there manually but I don't know how to use Datasource to get connections and how to use the external transaction service in the java code for OC4J.
    I really appreciate you help.
    Wei

    Here is a fill in the blank example on how you could set this up through code:
    Project project = new MyProject();
    // alternatively, use the XMLProjectReader
    server = project.createServerSession();
    server.getLogin().useExternalConnectionPooling();
    server.getLogin().setConnector(new JNDIConnector(new javax.naming.InitialContext(), "jdbc/DataSourceName"));
    // the next line depends on the type of driver you want to use.
    server.getLogin().useOracleThinJDBCDriver();
    server.getLogin().useOracle();
    server.getLogin().setUserName("username");
    server.getLogin().setPassword("password");
    server.getLogin().useExternalTransactionController();
    server.setExternalTransactionController(new Oracle9iJTSExternalTransactionController());
    server.logMessages();
    server.login();

  • Javax.jdo.JDOFatalInternalException: Illegal attempt to add an object to a

    javax.jdo.JDOFatalInternalException: Illegal attempt to add an object to a Pool that is already there
    How did this append ? I save a tree using fostore, everything works great... The problem shows when I try (after I restarted the app) to fetch the objects I previously created... (Using a query all).
    Does anybody have a idea ?
    Thanks in advance.
    Anthony

    forget this.... I found the solution

  • Javax.jdo.option.ConnectionFactoryName still wont work without driver, url ,name, password

    javax.jdo.option.ConnectionFactoryName still wont work without
    javax.jdo.option.ConnectionDriverName
    javax.jdo.option.ConnectionURL
    javax.jdo.option.ConnectionUserName
    javax.jdo.option.ConnectionPassword

    Mark,
    It is resolving JNDI all right it actually uses it but the same as 2.3.3 it
    will fail if no Driver/URL specified in properties. It looks like it still
    trying to do something with it (2.3.3 was trying to load schema using
    driver/url). Once this "something" is done it happily uses JNDI provided
    factory. Unfortunately I cant send you a stack trace - I was playing with
    2.4 over weekend and I have already converted my project back to 2.3.3
    I think all you need to reproduce the problem is property file with
    ConnectionFactoryName only no driver/url/user/password should be specified
    at all
    Alex
    "Marc Prudhommeaux" <[email protected]> wrote in message
    news:[email protected]..
    Alex-
    What exception are you seeing? Do you know if it resolving the JNDI
    reference at all? Our internal tests of this are working, but the
    environment could be an issue.
    In article <aodca1$ncu$[email protected]>, Alex Roytman wrote:
    javax.jdo.option.ConnectionFactoryName still wont work without
    javax.jdo.option.ConnectionDriverName
    javax.jdo.option.ConnectionURL
    javax.jdo.option.ConnectionUserName
    javax.jdo.option.ConnectionPassword
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Kodo Java Data Objects Full featured JDO: eliminate the SQL from yourcode

  • Override javax.jdo.PersistenceManagerFactoryClass property

    We are trying to use a custom PersistenceManagerFactory that uses a
    custom StoreManager. We want to override the
    "javax.jdo.PersistenceManagerFactoryClass" Kodo property so that it
    loads this custom PersistenceManagerFactory, but it doesn't seem to work
    for us.
    The code we are using to try to load the custom
    PersistenceManagerFactory is as follows:
    public void testGetFactory() {
              Properties properties = new Properties();
              properties.put("javax.jdo.PersistenceManagerFactoryClass",
    "ca.fcc.jdo.WorklistPersistenceManagerFactory");
              PersistenceManagerFactory factory =
    JDOHelper.getPersistenceManagerFactory(properties);
              System.out.println(factory.getClass());
              assertTrue(factory instanceof WorklistPersistenceManagerFactory);
    The name of the class that it says we are using is:
    kodo.jdbc.runtime.JDBCPersistenceManagerFactory
    The code for our custom PersistenceManagerFactory class is simple and is
    as follows:
    package ca.fcc.jdo;
    import kodo.jdbc.conf.JDBCConfiguration;
    import kodo.jdbc.runtime.JDBCPersistenceManagerFactory;
    import kodo.jdbc.runtime.JDBCStoreManager;
    import kodo.runtime.StoreManager;
    public class WorklistPersistenceManagerFactory extends
    JDBCPersistenceManagerFactory {
    private static StoreManager storeManager;
    public WorklistPersistenceManagerFactory() {
         System.out.println("In WorklistPersistenceManagerFactory
    constructor");
    public WorklistPersistenceManagerFactory(JDBCConfiguration
    jdbcConfiguration) {
    super(jdbcConfiguration);
    protected StoreManager newStoreManager() {
    if(storeManager == null){
         storeManager = new DistributedStoreManager(new
    JDBCStoreManager());
    return storeManager;
    Can anyone see what we are doing wrong?

    Srinivasa Segu wrote:
    JDOHelper.getPersistenceManagerFactory method loads the class from the value corresponding to the key javax.jdo.PersistenceManagerFactoryClass and then calls the static method getPersistenceManagerFactory on the class to obtain the PersistenceManagerFactory.
    With ca.fcc.jdo.WorklistPersistenceManagerFactory extending kodo.jdbc.runtime.JDBCPersistenceManagerFactory
    in this case is resulting in getPersistenceManagerFactory method of JDBCPersistenceManagerFactory invoked resulting in a JDBCPersistenceManagerFactory object.
    HTH
    SrinivasaSrinivasa,
    We added that static method to our factory and it works now, thanks!

  • Will Kodo support javax.jdo.option.ChangeApplicationIdentity?

    As of 3.2.2, Kodo doesn't support the optional feature
    javax.jdo.option.ChangeApplicationIdentity. Is there any plan to support
    this? We've got some legacy data schemas that use 5-column compound keys
    where we often need to change one of the columns. Right now we're forced to
    delete the old object and insert the new one -- but we'd like to avoid that.
    Thanks!
    - Ted Young

    Ted M. Young wrote:
    As of 3.2.2, Kodo doesn't support the optional feature
    javax.jdo.option.ChangeApplicationIdentity. Is there any plan to support
    this? We've got some legacy data schemas that use 5-column compound keys
    where we often need to change one of the columns. Right now we're forced to
    delete the old object and insert the new one -- but we'd like to avoid that.Unfortunately, we have no plans to support ChangeApplicationIdentity. It's a
    nightmare when you get into relations between objects whose keys are changing.

  • Posting using cross company code transaction must be blocked

    Hello Guys,
    I have a  problem related to cross company code transaction.
    In the OBA7 I have the document type KE that not allows posting using cross company code transactions. In the moment that I am creating a new document through the FB01, I have an error as "Consolidated companies US52 and ' ' are different
    Message no. F5080. As a results, the document cannot be created by this way. This is the correct process.
    But I have several documents that was used the doc type KE and the cross company code transaction was used. This is my issue. I don´t know why these documents were posted. The document come from another interface via IDOC and the IDOC not errored out.
    Can anyone help on this?
    Thanks
    Rafael B.

    Hello, I´ve checked the log and no changes since 2008.
    The document was created in 2010.
    This is the message: "No logs found for the selected period"
    More suggestions?
    Regards.
    Rafael

  • Query.setRange() not available on standard javax.jdo.Query interface?

    Hi Kodo people, I'm trying out Kodo 3.2.0, most specifically for the
    spiffy new setRange() functionality. However, I'm somewhat confused
    because while the docs clearly indicate that the setRange() method is
    available on the standard javax.jdo.Query interface, it's not available
    on the javax.jdo.Query class that ships with Kodo 3.2.0. I have to cast
    my query to a KodoQuery in order for this to work. Is this expected?
    Thanks,
    -Mike
    Michael Allen
    Technical Lead
    PGP Corporation

    I think you missed the note at the beginning of the query chapter in the docs:
    Much of the functionality we discuss in this chapter is new to JDO 2. Though
    Kodo supports all of the features defined in the following sections, many JDO
    implementations may not. Additionally, because official JDO 2 jars are not yet
    available, you will have to cast your query objects to kodo.query.KodoQuery to
    access any JDO 2 APIs. The UML diagram above depicts these APIs in bold. For
    simplicity, casts have been left out of the example code throughout the chapter.

  • How to trace the data dictionary tables used in the standard transaction

    Dear all,
    Help me to trace the data dictionary tables used in the standard transaction "crm_dno_monitor". I need to find the tables where the data are stored.
    or
    Tell me generally how to find the tables used in the standard transaction.
    Regards,
    Prem

    Hi,
    Open the program of that standard transaction in object navigator or SE80..
    Then click on the dictionary structures tab..
    U can find the database tables used in this transaction..
    \[removed by moderator\]
    Regards,
    Rakesh
    Edited by: Jan Stallkamp on Jul 29, 2008 5:29 PM

  • Which statement would you use to confirm a transaction?

    Which statement would you use to confirm a transaction?
    a. COMMIT TRANSACTION
    b. ROLLBACK TRANSACTION
    c. CHECK TRANSACTION
    d. VIEW TRANSACTION

    a.
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • Can we record two transactions and use for  a Call-transaction BDC?

    can we record two transactions and upload data using Call-transaction method in BDC ?IF not why?

    Hi Prakash,
    Here i used two transactions.
    REPORT zra_gl_cr NO STANDARD PAGE HEADING LINE-SIZE 255.
    TYPE-POOLS: truxs.
    DATA: it_raw TYPE truxs_t_text_data.
    DATA:messtab1 LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    DATA:messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF i_mess OCCURS 0,
      l_mstring(480),
      msgnr(5),
      msgv1(15),
      END OF i_mess.
    DATA:i_mess1 LIKE i_mess OCCURS 0 WITH HEADER LINE.
    DATA: l_mstring(480),l_mstring1(480).
    DATA: BEGIN OF it_itab OCCURS 0,
          saknr(10),    "G/L a/c number.
          bukrs(4),     "Company Code.
          ktoks(4),     "G/L a/c group.
          xplacct(1),   "P&L statement account.
          xbilk(1),     "Balance sheet account.
          txt20_ml(20), "G/L a/c short text.
          txt50_ml(50), "G/L a/c long text.
          waers(5),     "Account currency.
          MWSKZ(2),
          mitkz(1),     "Reconciliation a/c for a/c type.
          xopvw(1),     "Open item management
          xkres(1),     "Line item display.
          zuawa(3),     "Sort Key.
          fstag(4),     "Field status group.
          xintb(1),     "Post automatically only.
          hbkid(5),     "House bank.
          hktid(5),     "Account id.
          vzskz(2),     "Interest indicator
          END OF it_itab.
    DATA: hdate LIKE sy-datum.
                          Selection Screen                       *****
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(15) text-103. " FOR FIELD P_FILE1.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS : p_file1 LIKE rlgrap-filename.
    SELECTION-SCREEN END OF LINE.
                          Initialization                         *****
    INITIALIZATION.
                       At Selection Screen                       *****
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
    Perform file_selection will help to select the location of the file
      PERFORM file_selection.
                       Start-Of-Selection                        *****
    START-OF-SELECTION.
    Perform data_upload will help to upload the data from the flat file
    to the internal table.
      PERFORM data_upload.
    PERFORM open_group.
       Peform bdc_upload will help to upload the data from the internal
       table into its respective fields.
    PERFORM bdc_fspo.
      PERFORM bdc_upload.
      PERFORM exp_log.
    PERFORM close_group.
       Perform display_log will prepare a log for the data that has been
       uploaded
       PERFORM display_log.
                        End-Of-Selection                           ****
    END-OF-SELECTION.
    *&      Form  file_selection
          To select the location of the file
    FORM file_selection .
      CALL FUNCTION 'WS_FILENAME_GET'
        EXPORTING
          def_filename     = ' '
          def_path         = 'C:\'
          mask             = ',.txt,.xls.'
          mode             = 'O'
          title            = 'Open a excel file'
        IMPORTING
          filename         = p_file1
        EXCEPTIONS
          inv_winsys       = 1
          no_batch         = 2
          selection_cancel = 3
          selection_error  = 4
          OTHERS           = 5.
    ENDFORM.                    " file_selection
    *&      Form  data_upload
         To upload the data from the file location to the internal table.
    FORM data_upload .
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
        I_FIELD_SEPERATOR        =
          i_line_header            =  'X'
          i_tab_raw_data           =  it_raw
          i_filename               =  p_file1
        TABLES
          i_tab_converted_data     = it_itab
       EXCEPTIONS
          conversion_failed        = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " data_upload
    *&      Form  bdc_upload
    To upload the data from the internal table into its respective fields.
    FORM bdc_upload .
      LOOP AT it_itab.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ACC_CRE'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_KEY-SAKNR'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_KEY-SAKNR'
                                  it_itab-SAKNR.
    perform bdc_field       using 'GLACCOUNT_SCREEN_KEY-BUKRS'
                                  it_itab-BUKRS.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=2102_GROUP'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-KTOKS'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-KTOKS'
                                  it_itab-KTOKS.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-XPLACCT'
                                  it_itab-XPLACCT.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=2102_BS_PL'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-XBILK'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-KTOKS'
                                  it_itab-KTOKS.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-XPLACCT'
                                 it_itab-XPLACCT.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-XBILK'
                                  it_itab-XBILK.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTER'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-KTOKS'
                                  it_itab-KTOKS.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-XBILK'
                                  it_itab-XBILK.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-TXT20_ML'
                                  it_itab-TXT20_ML.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-TXT50_ML'
                                 it_itab-TXT50_ML.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-BILKT'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-BILKT'
                                  it_itab-saknr.
        PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TAB02'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'GLACCOUNT_SCREEN_COA-KTOKS'.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-KTOKS'
                                       it_itab-ktoks.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT20_ML'
                                       it_itab-txt20_ml.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT50_ML'
                                       it_itab-txt50_ml.
        perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-BILKT'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-BILKT'
                                  it_itab-saknr.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TAB02'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-KTOKS'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-KTOKS'
                                     it_itab-KTOKS.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_COA-KTOKS'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-KTOKS'
                                  it_itab-KTOKS.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-XBILK'
                                 it_itab-XBILK.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-TXT20_ML'
                                  it_itab-TXT20_ML.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-TXT50_ML'
                                  it_itab-TXT50_ML.
    perform bdc_field       using 'GLACCOUNT_SCREEN_COA-BILKT'
                                 it_itab-saknr.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTER'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-WAERS'
                                  it_itab-waers.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-MWSKZ'
                                  it_itab-MWSKZ.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-MITKZ'
                                  it_itab-mitkz.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_CCODE-XOPVW'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-XOPVW'
                                  it_itab-XOPVW.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-XKRES'
                                  it_itab-XKRES.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
                                 it_itab-ZUAWA.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
                                       it_itab-xplacct.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-XBILK'
                                       it_itab-xbilk.
           IF it_itab-xbilk = 'X'.
       PERFORM bdc_dynpro USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=TAB03'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'GLACCOUNT_SCREEN_CCODE-WAERS'.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-WAERS'
                                      it_itab-waers.
         PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-XOPVW'
                                  it_itab-xopvw.
         PERFORM bdc_field USING 'GLACCOUNT_SCREEN_CCODE-MITKZ'
                                  it_itab-mitkz.
       ENDIF.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-XKRES'
                                      it_itab-xkres.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
                                      it_itab-zuawa.
       PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=SAVE'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'GLACCOUNT_SCREEN_CCODE-FSTAG'.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-FSTAG'
                                      it_itab-fstag.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-XINTB'
                                      it_itab-xintb.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-HBKID'
                                      it_itab-hbkid.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-HKTID'
                                      it_itab-hktid.
       PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_CCODE-VZSKZ'
                                      it_itab-vzskz.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=TAB03'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_CCODE-WAERS'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-WAERS'
                                  it_itab-WAERS.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-MWSKZ'
                                  it_itab-MWSKZ.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-MITKZ'
                                  it_itab-MITKZ.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
                                 it_itab-ZUAWA.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTER'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_CCODE-FSTAG'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
                                 it_itab-FSTAG.
    perform bdc_dynpro      using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SAVE'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'GLACCOUNT_SCREEN_CCODE-FSTAG'.
    perform bdc_field       using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
                                  it_itab-FSTAG.
       PERFORM bdc_transaction USING 'FS00'.
        CALL TRANSACTION 'FS00' USING bdcdata MODE 'A'
                                              UPDATE 'S'
                                             MESSAGES  INTO messtab1.
        PERFORM mess1.
        REFRESH bdcdata[].
      ENDLOOP.
    ENDFORM.                    " bdc_upload
    *&      Form  bdc_fspo
          text
    FORM bdc_fspo .
      LOOP AT it_itab.
        PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ACC_CRE'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'GLACCOUNT_SCREEN_KEY-SAKNR'.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-SAKNR'
                                      it_itab-saknr.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-KTOPL'
                                      '1000'.
        PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=2102_GROUP'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'GLACCOUNT_SCREEN_COA-KTOKS'.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-KTOKS'
                                      it_itab-ktoks.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
                                       it_itab-xplacct.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-XBILK'
                                      it_itab-xbilk.
        PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=SAVE'.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-KTOKS'
                                       it_itab-ktoks.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-XPLACCT'
                                       it_itab-xplacct.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'GLACCOUNT_SCREEN_COA-TXT50_ML'.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT20_ML'
                                       it_itab-txt20_ml.
        PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT50_ML'
                                       it_itab-txt50_ml.
    *perform bdc_transaction using 'FSP0'.
        CALL TRANSACTION 'FSP0' USING bdcdata MODE 'A'
                                              UPDATE 'S'
                                             MESSAGES  INTO messtab.
        PERFORM mess.
        REFRESH bdcdata[].
      ENDLOOP.
    ENDFORM.                    " bdc_fspo
    *&      Form  mess
          text
    -->  p1        text
    <--  p2        text
    FORM mess .                                                 "fsp0
      LOOP AT messtab.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            id        = messtab-msgid
            lang      = messtab-msgspra
            no        = messtab-msgnr
            v1        = messtab-msgv1
            v2        = messtab-msgv2
            v3        = messtab-msgv3
            v4        = messtab-msgv4
          IMPORTING
            msg       = l_mstring
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
        CONDENSE l_mstring.
        i_mess1-l_mstring = l_mstring(250).
        i_mess1-msgnr = messtab1-msgnr.
        i_mess1-msgv1 = messtab1-msgv1.
        APPEND i_mess1.
      ENDLOOP.
    ENDFORM.                    " mess
    *&      Form  mess1
          text
    -->  p1        text
    <--  p2        text
    FORM mess1 .                                                "fs00
      LOOP AT messtab1.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            id        = messtab1-msgid
            lang      = messtab1-msgspra
            no        = messtab1-msgnr
            v1        = messtab1-msgv1
            v2        = messtab1-msgv2
            v3        = messtab1-msgv3
            v4        = messtab1-msgv4
          IMPORTING
            msg       = l_mstring1
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
        CONDENSE l_mstring1.
        i_mess-l_mstring = l_mstring1(250).
        i_mess-msgnr = messtab1-msgnr.
        i_mess-msgv1 = messtab1-msgv1.
        APPEND i_mess.
      ENDLOOP.
    ENDFORM.                                                    " mess1
    *&      Form  exp_log
          text
    -->  p1        text
    <--  p2        text
    FORM exp_log .
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename = 'c:\temp\error_fsp0.txt'
          filetype = 'DAT'
        TABLES
          data_tab = i_mess1.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename = 'c:\temp\error_fs00.txt'
          filetype = 'DAT'
        TABLES
          data_tab = i_mess.
    ENDFORM.                    " exp_log
    *&      Form  bdc_dynpro
          text
         -->PROGRAM    text
         -->DYNPRO     text
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "BDC_Field
    ********Rewards some points.

  • Where to find javax.xml.bind and javax.jdo

    One of my application require import javax.xml.bind and javax.jdo packages. I could not find them. Someone can help to let me know where to download them or they come with some other toll\packages?
    Thanks
    John

    Hi John ,
    I have the same problem: Getting the javax.jdo Packge . . . .(WHERE ?)
    if you found out ow already, please tell me at: [email protected]
    thanks,
    edan

  • Problems of using of Aggregates for Transactional Cube

    Hi,
    <b>Are there problems or disadvantages of using of Aggregates for Transactional Cube?</b>
    Tx.
    AndyML

    Hi,
    have a look at SAP's docu: http://help.sap.com/saphelp_nw04/helpdata/en/c0/99663b3e916a78e10000000a11402f/frameset.htm
    /manfred

  • Last Used status for Reports, Transactions, Tables ??

    Dear all,
    Kindly let me know how to find the last used status for
    Reports, Transactions, Tables ??
    This is very urgent, Please do the needful.
    Waiting for the responses..
    Cheers,
    Virendra.

    Here the issue is same.
    STAT transaction is asking for the time which is the main hurdle.
    I am hanging around with STAT transaction but not finding
    how to getover the time specification.
    if i dont specify the time i takes by default the 2 or minutes back from the current time.
    which is not useful for me at all.
    My main requirement is that my seniors want to know what are all reports or transaction or tables which are not used at what last time ?
    so if i have to specify the time wont be so useful for me.
    And writing a report 'll not gain anything coz internal SAP report is take time as main parameter.
    Regards,
    Virendra.

  • Javax.jdo.JDOFatalUserException: No metadata has been registered

    Hi all,
    I get the following error when running the following call:
    String fieldNames[] =
    JDOImplHelper.getInstance().getFieldNames(emp.getClass());
    for (int i = 0; i <fieldNames.length; i++) {
    JDOHelper.makeDirty(emp, fieldNames);
    javax.jdo.JDOFatalUserException: No metadata has been registered for
    class persistent.Person.
         at javax.jdo.spi.JDOImplHelper.getMeta(JDOImplHelper.java:472)
         at javax.jdo.spi.JDOImplHelper.getFieldNames(JDOImplHelper.java:141)
         at test.TestVersionNumber.main(TestVersionNumber.java:124)
    I placed the package.jdo file in the same package as the class.
    Thanks in advance.
    Daniela

    Looks like a classpath issue. To debug you could try to read the jdo file to see if it can be found in the classpath.
    Laurent

Maybe you are looking for