Customizing Transaction Manager

Hi everybody,
I'd like to know if there is some documentation for customizing CFM module (more precisely for Transaction Manager functionalities. It seemes to me that exists a document named FSCDE1)
thanks in advance,
Mirco

Hi...
The following link may be of use to you. This document is Basic Functions in Treasury Management. It has covered transaction and position management. You have to get registered with the site which is free.
http://sapinformation.com/Documents/SAPTrainingCourses/AC810-BasicFunctionsInTreasuryManagement.doc
If you find any problem simply register with www.sapsuperusers.com and check out in access training material section.
Assign points if useful
Regards
Aravind

Similar Messages

  • Creation of custom Transaction for confirm goods in SRM

    Hi Experts
    i need to create a custom transaction same as standard one  for confirm goods/servics in SRM portal.
    In sap GUI, the transaction is BBPCF03
    Can you please suggest any good sources where i can learn to Custome Tcodes for my requirement
    Thanks in advance
    Edited by: kittu reddy on Nov 19, 2008 7:27 AM

    Hi Hussaini,
    Here are the steps.
    1> Customization needs to be completed in SPRO. Logistics Execution -> Mobile Data entry section. Also compare entries with LM01 for understanding.
    2> In the 'Define menu management', you can create dynamic menus. For Menu or transaction type, if you enter "1", a menu appears; if you enter "2", a transaction appears. Custom transactions can be created and assigned here.
    Once that is done, when you execute LM01 you will see your custom transactions come up. Make sure that these are created keeping in mind the RF device screen size and limitations.
    Regards,
    Anand.

  • Creation Of Custom Transaction For RF enabled devices "mobile data entry"

    Hello Everyone,
    i need some information, or some material or some example's for creating custom transactions that will invoke the standard good issue transaction of sap from the handled device using the RF , so can anybody give some reference which will help me in creating custom transaction for a RF enabled handled device, which will invoke the standard sap goods issue transaction( mb1a) ,, there are some LM-transaction which do goods issue from the RF enabled handled device, but in my case i want to do goods issue using reservation as my input, so can anybody guide me or send some reference material matching to my problem, i would really appreciate it..
    thanks in advance...
    sapient2006

    Hi Hussaini,
    Here are the steps.
    1> Customization needs to be completed in SPRO. Logistics Execution -> Mobile Data entry section. Also compare entries with LM01 for understanding.
    2> In the 'Define menu management', you can create dynamic menus. For Menu or transaction type, if you enter "1", a menu appears; if you enter "2", a transaction appears. Custom transactions can be created and assigned here.
    Once that is done, when you execute LM01 you will see your custom transactions come up. Make sure that these are created keeping in mind the RF device screen size and limitations.
    Regards,
    Anand.

  • Escaping field value in custom transaction

    I have created a custom transaction inserting fields in a table called `billing`. The values are taken mainly from two other tables called `account` and `paypalinfo`. I have attached the code below.
    Please not the values to be inserted notated in wavy brackets like{paypalinfo.txnid}. This means the variable content is replacing what is in between the brackets and the brackets themselves of course at run time. Sine these are often character strings, I have put them into single quotes.
    This worked great until I had an Irish guy acccessing my site with the sirname of O'Hara. That of course confused the statement, as suddenly there was a ' character, which was supposed to be interpreted as string, but was interpreted as SQL field delimiter and thus broke the code.
    Here is my question: Should I escape the value and how would I do it, since this is not a normal code but a placeholder replaced at runtime? Or should I use another SQL field value delimiter, thus replace ' with ` ? I think the latter solution is inferior - just think of what heappens if you get an O`Hara instead of an O'Hara.
    So in essence the question is: How do you handle escaping varabiable content in custom transactions with run time replaced variables in {...} brackets?
    Any feedback welcome.
    Here is the code:
    // Make a custom transaction instance
    $customTransaction2 = new tNG_custom($conn_chilli);
    $tNGs->addTransaction($customTransaction2);
    // Register triggers
    $customTransaction2->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Insert1");
    // Set custom transaction SQL
    $customTransaction2->setSQL("INSERT INTO billing (buyer_email, account, affiliate, partner, admin, transid, transdate, buyer_fname, buyer_lname, package, minutesbought, amountpaid, currency, userid, mac, nasid, routermac) values ('{paypalinfo.buyer_email}','{paypalinfo.account}','{account.affiliate}', '{account.partner}', '{account.admin}', '{paypalinfo.txnid}', '".$right_now."', '{paypalinfo.firstname}', '{paypalinfo.lastname}', '{paypalinfo.itemname}', '{package.tavail}', '{paypalinfo.mc_gross}', '{paypalinfo.mc_currency}', '{SESSION.id}', '{paypalinfo.usermac}', '".$router_name."', '{paypalinfo.routermac}')");

    You should never be using anything but:<br /><br />'b string mysql_real_escape_string  ( string $unescaped_string  [, resource $link_identifier  ] )<br /><br />'i http://www.php.net/manual/en/function.mysql-real-escape-string.php<br /><br />The reasons for this is that this are related to SQL injection attacks.  I would hand code this, but for anything more complex than CRUD ( http://en.wikipedia.org/wiki/Create,_read,_update_and_delete ) (which ADDT handles very nicely) I favor hand coding as it is faster, less complex when enforcing business process.  Also, this allows one usage of the database management system's transaction mechanisms which are typically far more robust and reliable on top of being simpler to work with.  <br /><br />Please note that the type of my storage for your database within MySQL will support different features.  To enable the usage of database transactions you will need to use the InnoDB table type rather then the default MyISAM table type.  Various versions of MySQL have other options for transaction safe table but those two are the ones that are consistently available in web environs where bleeding edge software is not normally deployed.<br /><br />http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html<br /><br />Diatribe aside, what you need to do with these templated objects is to duplicate the object referenced {paypalinfo} and apply mysql_real_escape_string to the duplicates elements {paypalinfo_escaped_copy.txnid}.  Then run the copied ADDT code with values from {paypalinfo_escaped_copy}.  How you do you this I leave you to track down as I do not find that level of abstraction to be a good use of my time and other other libraries/frameworks do it much more elegantly using less of my time.<br /><br />But as Gunter already noted, refactoring your problem to work with your tools existing architectures can be simpler.  ADDT has a limited programming architecture (primary design) which is done to simplify the automatic generation of code.  This can make some simple things complex (50-80 mouse clicks) as opposed to  typing one or two lines of code.<br /><br />some thoughts, <smile><br /><br />Sean

  • @TransactionAttribute annotation being ignored by Transaction Manager

    I am currently running jboss-4.0.4GA. I believe I must have something configured incorrectly, or I misunderstand transaction management performed by the container. Though I have my datasource declared as local-tx, which I believe allows transactions, it appears that my a call to a remote function in a stateless session bean is completely executed in one single transaction, regardless of the @TransactionAttribute tags.
    In my example, I call a function with @TransactionAttribute = REQUIRED. This is the OUTER FUNCTION. This function inserts a record into the cust table of our database. Then this function calls a second function with @TransactionAttribute = REQUIRES_NEW. This is the INNER FUNCTION.
    This function should, according to spec, start up a new transaction independant of the first function. However, the INNER function can select the (un-committed) cust record from the OUTER function. The INNER function then proceeds to add a cust record of its own to the database.
    Control then returns to the OUTER function, which can succesfully read the cust record inserted by the INNER function, which is to be expected because the INNER function should have had its transaction committed. However, my program then throws a RuntimeException in order to force a rollback, and this rollback removes both the cust record inserted by the OUTER function and the cust record inserted by the INNER function.
    To further my belief that the transaction manager is ignoring my @TransactionAttribute annotations, I change the TransactionAttributeType of the INNER function to "NEVER". According to spec, the code should throw an exception when this function is called within a managed transaction. However, when I run the code I get the exact same behavior as when the INNER function is "REQUIRES_NEW".
    I would greatly appreciate if anyone has any insight into what I am doing wrong. Thanks!
    Client Program that Invokes TestTransImpl Stateless Session Bean
    public class Client{
         public static void main(String[] args) throws Exception {
              try{               
                   Properties env = new Properties();
                               env.setProperty(Context.SECURITY_PRINCIPAL, "guest");
                               env.setProperty(Context.SECURITY_CREDENTIALS, "guest123");
                               env.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
                               env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
                               env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory");
                   InitialContext ctx = new InitialContext(env);
                   TestTransRemote ttr = (TestTransRemote)ctx.lookup("TestTransImpl/remote");
                   ttr.testTransactions();
              }catch(Exception e){
                   e.printStackTrace();
                   throw e;
    }Remote Interface for TestTransImpl Stateless Session Bean
    public interface TestTransRemote extends Serializable {
         public void testTransactions() throws Exception;
    }TestTransImpl Stateless Session Bean
    @Stateless
    @Remote(TestTransRemote.class)
    public class TestTransImpl implements TestTransRemote {
         private static final long serialVersionUID = 1L;
         @TransactionAttribute(TransactionAttributeType.REQUIRED)
         public void testTransactions() throws Exception{
              java.sql.Connection conn = getConnection();
              java.sql.PreparedStatement ps;
              ps = conn.prepareCall("insert into cust(loc,cust_no) values ('001',20)");
              ps.execute();
              System.out.println("OUTSIDE FUNCTION - Customer 20 created");
              requiredNewFunction();
              ps = conn.prepareCall("Select cust_no from cust where loc = '001' and cust_no = 24");
              java.sql.ResultSet results = ps.executeQuery();
              results.next();     
              System.out.println("OUTSIDE FUNCTION - Customer Read - Cust No = " + results.getLong("cust_no"));
              throw new RuntimeException();
         @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
         private void requiredNewFunction() throws Exception{
              java.sql.Connection conn = getConnection();
              java.sql.PreparedStatement ps;
              ps = conn.prepareCall("Select cust_no from cust where loc = '001' and cust_no = 20");
              java.sql.ResultSet results = ps.executeQuery();
              results.next();     
              System.out.println("INSIDE FUNCTION - Customer Read - Cust No = " + results.getLong("cust_no"));
              ps = conn.prepareCall("insert into cust(loc,cust_no) values ('001',24)");
              ps.execute();
              System.out.println("INSIDE FUNCTION - Customer 24 created");
         private java.sql.Connection getConnection() throws Exception{
              javax.sql.DataSource ds;
              javax.naming.InitialContext ic = new javax.naming.InitialContext();
              ds = (javax.sql.DataSource)ic.lookup("java:MyOracleDS");
              java.sql.Connection conn = ds.getConnection();
              return conn;          
    }Datasource XML File
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
        <local-tx-datasource>
            <jndi-name>MyOracleDS</jndi-name>
            <connection-url>jdbc:oracle:thin:XXXXX(DB Host):1521:XXXXX(DB Sid)</connection-url>
            <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
            <user-name>XXXXX(username)</user-name>
            <password>XXXXX(password)</password>
            <min-pool-size>5</min-pool-size>
            <max-pool-size>100</max-pool-size>
            <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
            <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
            <metadata>
                <type-mapping>Oracle10g</type-mapping>
            </metadata>
        </local-tx-datasource>
    </datasources>Program Output
    08:43:41,093 INFO  [STDOUT] OUTSIDE FUNCTION - Customer 20 created
    08:43:41,125 INFO  [STDOUT] INSIDE FUNCTION - Customer Read - Cust No = 20
    08:43:41,140 INFO  [STDOUT] INSIDE FUNCTION - Customer 24 created
    08:43:41,140 INFO  [STDOUT] OUTSIDE FUNCTION - Customer Read - Cust No = 24

    All ejb invocation behavior, including authorization, container-managed transactions, etc. only applies when the call is made through one of the appropriate ejb client objects. If
    TestTransImpl.testTransactions() directly invokes requiredNewFunction() it's just a normal java
    method call -- the ejb container has no idea it's happening and is not interposing. If you want
    the full ejb invocation behavior when you invoke requiredNewFunction() you'll need to
    make sure requiredNewFunction is part of a business interface, is public, and is invoked through
    the corresponding ejb reference :
    @Resource private SessionContext ctx;
    public void testTransactions() throws Exception {
    TestTransRemote testTrans = ctx.getBusinessObject(TestTransRemote.class);
    testTrans.requiredNewFunction();
    }

  • Customer credit management IDOC

    Hi,
    I am using scenario: if a customer credit management document is changed in R/3. Send the change as an IDOC to CRM. Can you please identify any standard IDOC for customer credit management or I will have to use customer master IDOC DEBMAS (but I do not have DEBMAS idoc type in CRM).
    Thanks in advance!
    Regards,
    Faiq

    A new Credit Control Area is created in the Configuration menu (IMG - transaction SPRO). Path: Enterprise Structure>Definition>Financial Accounting>Define Credit Control Area.
    There are also additional tasks like assigning the Credit Control Area to the Company code........etc.
    If you do not have access to the IMG then your SAP support team will be able to do it.
    Once created you can do what you need to do as per previous posts.

  • Transaction management with DatabaseControl calls in Workshop

    hej,
    How can DatabaseControl calls be grouped within a transaction from a Forward method? For example, if I have the following:
    protected Forward () {
    <DatabaseControl>.insert1 ();
    <DatabaseControl>.update1 ();
    <DatabaseControl>.update2 ();
    The insert1, update1, and update3 calls should be grouped together in a transaction so that if update2 fails everything gets rolled back.
    Using weblogic.jdbc.db2.DB2Driver driver against DB2 8.2 (plus 2 phased commit is enabled for non-XA drivers on the DataSource object).
    / Matthew Young

    Found a partial answer to my own question. Wrap a Custom Control around the DatabaseControl calls and automatically get transaction managing.
    Would be cool if somebody could give a simple example or a few pointer. / Matthew

  • Configuration required to add a custom transaction to RF menu?

    Hello experts,
    what configuration required to add a custom transaction to RF menu?
    Thanks for your help in advance
    Edited by: rksap7284 on May 16, 2008 9:59 AM

    You need to assigned the developed transaction code in the RF menu desiging configuration
    Path: SPRO --> Logistics Execution --> Mobile data entry --> RF menu management.
    Hope this helps.
    Regards
    Arif Mansuri

  • Configurations required to add custom transaction under MSS in HRMS9.1

    Hi,
    Please let me know what are the setup/configurations are required to add custom transaction under Manager Self Service in HRMS 9.1.
    Thanks in Advance.

    As the server.xml is big enough, I took the minimum portion of it. Hope u can proceed with it.
    <!-- Tomcat Root Context -->
    <Context path="" docBase="ROOT" debug="0"/>
    <!-- New contexts -->
    <Context path="/xyz" docBase="pathTo_xyz" debug="0" crossContext="true"/>
    <Context path="/pqr" docBase="pathTo_pqr" debug="0" crossContext="true"/>
    <!-- Tomcat Examples Context -->
    <Context path="/examples" docBase="examples" debug="0"
    reloadable="true" crossContext="true">
    You should also provide a WEB-INF folder under pqr or xyz folder.
    You should also provide a web.xml file under each WEB-INF folder.
    The minimal web.xml is
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/j2ee/dtd/web-app_2_3.dtd">
    <web-app>
    </web-app>
    That's it. Try it out. Hope it is OK.
    Hafizur Rahman
    SCJP

  • Transaction Management using JDBC service

    In Adobe Livecycle 8.2 JDBC service do not provide exception handling.
    How to start trasaction from client Java application running on another machine and pass it to customised process having JDBC service
    Should transaction be started on client machine using JNDI lookup of Transaction manager of Livecycle application server
    How to rollback transaction when Java application get error from EJB end point.

    Hello Amit!
    It is true that LiveCycle 8.2's JDBC service has on built-in exception handling.  This has been remedied in 9.0 as there are now several exception types that can be handled.
    If I understand correctly, your trouble comes with the lack of transaction management around the existing JDBC service within LiveCycle.  To this I can only recommend that any SQL statements needing to be run with transaction management be done so within an executeScript service.  I have, on many, many occasions, utilized this service to write some custom code using the Statement and/or PreparedStatement classes to handle any database interactions.
    In addition to the above, it seems as though you would like to leverage the JNDI lookup capability of LiveCycle's JDBC service so you can specify a data source name as opposed to having to establish your own connection.  This too can be handled within the executeScript service via custom code.  As an example, the following code, when dropped in an executeScript service, will establish a connection to an Oracle database via JNDI lookup:
    import oracle.sql.*;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import javax.naming.InitialContext;
    import org.jboss.resource.adapter.jdbc.WrappedConnection;
    import oracle.jdbc.OracleConnection;
    InitialContext ctx = new InitialContext();
    String sDataSource = "YOUR DATA SOURCE NAME HERE";
    Connection conn = ((DataSource)ctx.lookup(sDataSource)).getConnection();
    org.jboss.resource.adapter.jdbc.WrappedConnection oWConn = (WrappedConnection) conn;
    OracleConnection oConn = oWConn.getUnderlyingConnection();
    From that point forward, you can simply leverage the PreparedStatement and/or Statement classes for any statements.
    Please do let me know if you have any questions.
    Josh Boyle
    [email protected]
    Cardinal Solutions Group

  • Transaction Management - OIM API

    We wanted to know how to handle transaction from OIMClient, when we make OIM API call.
    eg:
    from a java client, we invoke create organization and provision resource to that organization.
    i.e we end up calling two OIM api calls
    1)
        organizationManager.create(organizationObj);
    2)
    tcOrganizationOperationsIntf.provisionObject(orgKey,resourceKey);
    Now, if 2nd one fails, then transaction should be rolled back and organization create should be rolled back. we wanted single unit of work to be achieved.
    how can this be achieved?
    how do we control transaction from OIMClient/API?
    public String createOrganization(OrganizationVO ovo) {
      String result = "";
      OrganizationManager omgr = null; // OIMClient API
      Organization org = null; // OIMClient API
      try { 
      omgr=ULMServiceLocator.getInstance().getOrganizationManager();
      org = new Organization();
      org.setAttribute("Organization Name", ovo.getOrgName());
      org.setAttribute("Organization Customer Type", ovo.getOrgType());
      result = omgr.create(org);
      tcUtilityFactory ioutilityFactory = ULMServiceLocator.getInstance().getcUtilityFactory();
      //TODO
      tcOrganizationOperationsIntf utilityFactory1 = (tcOrganizationOperationsIntf) ioutilityFactory
      .getUtility("Thor.API.Operations.tcOrganizationOperationsIntf");
      long l1 = utilityFactory1.provisionObject(Long.parseLong(result),
      123l);
      } catch (oracle.jrf.UnknownPlatformException e) {
      e.printStackTrace();
      } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return result;

    Hi Abhay,
    <b>If there is another way to add a record to Main table and Lookup/Qualified/Hierarchy table simultaneously then there is no need of Transaction.</b>
    There are no direct methods currently(as of MDM 5.5SP3) available in MDM API.
    You have to build your own logic to implement.
    Regarding the Transaction management, I guess you are talking aboout two phase commit scenarios. I would say you can achieve this using EJB's in which u write the business logic (In this case the MDM API code).
    For Example:
    Adding a record to Main table,
    Let say 2 fields
    1. Free text field.
    Its straight forward method, use A2iFiled object and assign some value to it.
    2. Lookup field.
    For this.
    First get the Record id for the value, which you are trying to add, from the lookup table.
    If the lookup table does not find the value in the table, it return zero or some negative value(which I am not sure).
    Based on the return value you can add the value into the lookup table and then into the main table.
    Just putting a sample scenario. Hope this helps.
    Thanks and regards
    Subbu

  • URGENT iRecruitment - AME Custom Transaction Type

    Hi All..
    We have a requirement to send Vacancy Approval Notifications to Manager's Supervisor
    ( Say X is the Manager we specify while creating the Vacancy. System should send Approval Notification to X's Supervisor ).
    1 I built a Custom Transaction Type with Dynamic Approver Group using the following Query
    SELECT DISTINCT 'PERSON_ID:'||ppl.person_id
    FROM apps.per_all_people_f ppl,
    apps.per_assignments_f asg,
    apps.per_all_vacancies vac
    WHERE (vac.requisition_id = :transactionId)
    AND (asg.person_id = vac.manager_id AND ppl.person_id = asg.supervisor_id)
    2. Changed the Profile option "IRC" Vacancy Approval Transation Type" with the Custom Transaction Type ID.
    Note: Test Workbench in AME is not showing any Approvers
    3. When i create a NEW Vacancy. The System is selecting the default Approver ( which is Supervisory based ) . It is considering the Supervisor based on the USER ID we use it for creating the vacancy and sending the Approval. NOT using the Manager ID. !
    My Question is
    1. Is the Query Specified above correct as per requirement ? or am i missing something
    2. How does the system consider the custom trasanction type for creating the list of Approvers. ( other than Profile option "IRC: Vacancy Approval Transaction Type""
    Please Note: I did not use any Attribute or Conditions in the Custom Transasction Type. 'cause the business requriement is very straight forward.
    Please Guide me through.
    Thanks and Regards
    Sheera

    Santosh,
    SAP do not support the copying of transaction types from SDHF to anything other than ZDHF or YDHF ie within the customer namespace.  In order to do that you need to use the copy function from SOLMAN_SETUP -> IT Service Management -> ChaRM -> Copy Transaction Types or transaction AI_CRM_CPY_PTYPE_WEB.  The procedure is documented in section 2.3 in the 'Change Request Management - Configuration and Upgrade Guide' available on the Marketplace http://service.sap.com/~sapidb/011000358700001056012011E.PDF.
    I would follow that procedure first with a supported transaction type name and that may resolve your problem.
    Regards,
    Ciará

  • Forte Transaction Management & 2PC

    Forte Transaction Management & 2PC
    The main purpose of 2PC in a distributed transaction manager is
    to enable recovery from a failure that occurs during the window
    of transaction commit processing. The Forte transaction manager was built
    with this in mind but only with respect to the "volatile" (or "in memory")
    objects that Forte manages. What this implies is that because Forte stores
    objects in memory and not persistently on disk, the requirement of recovery
    for these objects is significantly reduced (if not eliminated all together).
    Forte follows a distributed 2PC model in that tasks and messages carry
    along with them transaction identification and, during commit processing,
    every distributed participant is polled for its availability to commit
    the transaction. Applications saving persistent data to disk during a
    distributed Forte transaction need to concern themselves with the potential
    for failure during the commit processing window. Forte's prepare phase polls
    each site (confirming a communications link with each distributed participant)
    but no prepare request goes to the database primarily because (in release 1 and
    2 of forte) no database supported a general distributed two-phase commit
    (one could take issue with that in the case of Sybase, but rather than debate
    this point, suffice it to say that the general direction in the industry for
    support of this functionality was through TP monitors -- more on that later).
    Once all sites are ready to commit Forte expects that the commit will
    complete successfully. If at this moment, for example, a participating
    Sybase server terminates (with data not yet committed) while a participating
    Oracle server has already committed its unit of work, then the outcome of
    the distributed transaction is inconsistent - if no one has yet committed
    Forte will still abort the transaction. This "window of inconsistency"
    is documented in the Forte TOOL manual.
    Mission critical applications that require distributed transactions can
    address this window of inconsistency in a number of ways:
    * Utilize a TP monitor such as Encina (see below)
    * Log distributed updates in an auxiliary database table (much like a
    distributed transaction monitor's transaction-state log). This approach has
    been the traditional banking application solution prior to the commercial
    availability of products like Encina, Tuxedo, TopEnd, etc.
    This solution is somewhat complex and is usually not generic enough
    so as not to have to change code every time a new table or database
    site is introduced into the application's data model.
    * Rearrange the data model in order to eliminate the need for distributed
    transactions. This is usually only a temporary solution (with smaller
    numbers of active clients) and cannot be applied to complex legacy systems.
    With the advent of the X/Open distributed transaction architecture (the
    XA Interface) more database vendors have found that by complying with the
    XA interface they can plug their database-specific implementation of
    transaction into a globally managed transaction, with commit and abort
    processing being conducted by a central coordinator. Of course, the
    overall transaction manager coordinating the global transaction must
    itself, persistently record the state of the different distributed
    branches participating in the transaction. A significant portion of
    the functionality provided by products such as Encina, Tuxedo, TopEnd and
    OpenTP1 is to provide exactly this global transaction management.
    Rather than extend the Forte distributed transaction manager with the
    functionality necessary to manage and recover distributed transactions
    that modify data on disk, Forte has chosen to integrate with the emerging
    set of commercial transaction monitors and managers. This decision was
    built into the original design of the Forte transaction model (using XA and
    early Tuxedo white-papers as guidelines):
    * In Forte release 2 an integration with Encina was delivered.
    * In January 1997 a press release announced an integration of
    OpenTP1 with Forte for release 3.
    * The Forte engineering staff is currently investing integration
    with other transaction management products as well.
    Neil Goodman,
    Forte Development.

    You don't. ("manage" a transaction)
    There is nothing really to "manage".
    A transaction is automatically started when you make any changes to data (e.g. fire off a DML statement).
    You simply needs to issue a COMMIT or ROLLBACK when needed. A COMMIT at the end of the business transaction and not before (i.e. no committing every n number of rows). A ROLLBACK when hitting an exception or business logic error that requires the uncommitted changes to be undone.
    That in a nutshell is it. It is that simple.
    Oracle also supports creating savepoints and rolling back only some changes made thus far in the transaction.
    The only other thing to keep in mind that a DDL in Oracle issues an implicit commit. Firing off a DDL with cause any exiting uncommitted transaction to be committed.
    Transaction "logic/management" should not be made more complex than this.

  • AR Report Requirement - Customer Credit Management - 0FI_AR_9

    HI There,
    We have a requirement in AR report to add the below fields from Customer Credit Management Datasource 0FI_AR_9
    KNKLI - Credit Control Account- 0CRED_ACCNT     
    KLIMK - Credit Limit - 0CRED_LIMIT
    CTLPC - Risk Category     -  0RISK_CATEG     
    Except KNKLI (Credit control account), remaining two fields are master data.
    Can we use the data from 0FI_AR_9 by writing look up? Please suggest.
    Thanks
    Vandana

    Hi,vandana_ir
    i don't know what's your requirement else,if you wanna add those fields to the report
    those below solution may be can help you
    1.data loading into InfoObject etc.0customer
    2.using virutal key figure tech to read customer value from infoObject.

  • Custom Transaction using RSDMD to go to MD Screen Directly

    Hi,
    I have created a custom transaction for Master Data Maint. which uses RSDMD and the InfoObject name.
    By using this custom transaction I can reach to
    the screen to filter the records. Here I click on
    execute (F8) to reach the actual data.
    I used SHD0 to create this custom-transaction.
    How do I include the "execute / F8" functionality in my custom transaction, so that when I use custom-transaction I can go directly to the data.
    Would appreciate your help.
    Thank you,
    Pramod.

    Hi Mark,
    Your design of going for Name01, Age01 , Date01.....
    is absolutely correct. Stdandard SAP even does the same thing.
    Regarding the dump...you can do one thing..try referring
    standard infotypes which uses table control like Basic pay infotype 0008.
    If you get any help from there then its fine..or just post send the dump analysis (point 3 of dump) to forum i guess from that definitely we can conclude at the reason for dump...
    Enjoy SAP.
    Pankaj

Maybe you are looking for

  • Can't get in iPod with my old account (that I also can't get in) and can't create a new one of there?

    Hello. I have an iPod Touch 5G with iOS 7.0.4 I suppose. I was locked out due to forgotten passcode, so I had to reset factory settings. When the new user guide screen came on, it said "Please sign in with the account used on this iPod, which is m***

  • Photo Gallery with lightbox2 help

    Hey people Good news i finally got my photo gallery from bc to show in lightbox 2 using .xlm. the only problem im having is how to layout the thumb pictures. if you have a look here http://kookaburracreekretreat2.businesscatalyst.com/the-house.html Y

  • Having issue with start weblogic cluster with tangosol cluster

    Hi, Oracle Coherence Version 3.3.1/389p1 Grid Edition: Development mode We are using Weblogic 8.1.5 with Tangosol 3.3.1 on Linux servers. And we added the initializing logic in the servlet's init() method to get all NamedCaches and put into the Servl

  • How to save a flash with .SWF

    Hi, I have the 'Adobe Flash CS3 Professional', and I want to know if you could tell me how to save a flash with .SWF. When I want to create a new project, I can chose between nine types of documents, and I want to make a flash for a website. What typ

  • Invooice block for price variance

    Hi I require a block for the invoice for value more than PO value by 2Rupees. I have done the Tolerance key cuustomizing for PP (Price variance) by mainaining the upper limit as 2 Rupees and have checked the limits. I expected the system to block the