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.
WeiHere 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.
Anthonyforget this.... I found the solution
-
javax.jdo.option.ConnectionFactoryName still wont work without
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPasswordMark,
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 YoungTed 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 -
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 CorporationI 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,
PremHi,
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 TRANSACTIONa.
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
JohnHi 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.
AndyMLHi,
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.
DanielaLooks 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
-
Running OSX 10.7.5 and have a copy of windows 8
I'm running 10.7.5 and have a copy of windows 8 that I need running for school. I have downloaded the new boot camp driver files, but am running into problems during boot camp assistant. Even though I have boot camp 5 files, when I run assistant I st
-
Why is my WiFi connection dropping as soon as I walk out of the room where my router is located? Running OSX 10.6.8 Had ISP provider here multiple times. They switched out the router/modem on 4 occasions. They ran new fiber optic cables to my house.
-
Missing "Use My Local Drafts Folder" Checkbox
We work with Office 2010 32 bit and SharePoint 2010. After we update the Lync to 2013 version, we find in SP at check out "Use My Local Drafts Folder" checkbox does not appear any more. I read this article https://social.technet.microsoft.com/Forums/
-
I have OS X 10.5.8 Can this be upgraded to 10.6?
I have OS X 10.5.8 Can this be upgraded to 10.6?
-
Firmware Update worked fine but... Please help!!
Hi to all, I've installed the new firmware update in my iMac 20". Everything worked fine but after this update each time I switch on the iMac I get the message that the Firmware has been updated correctly. I can only click on OK to close that form bu