Creating an Transaction ID in a WebService?

Hello, SAPients. Here is a .NET developer that just begun working with SAP.
I am facing a problem that I can't find the answer so far. I have a webpage that has 3 WebServices (all connecting to SAP). The first one captures the data using BAPI_BUPA_ADDRESS_GETDETAIL from SAP and returns to the Web, where the user can modify some data.
The following step is that, after the user ends changing the data, he activates a function that passes the modified data to SAP using BAPI_BUPA_ADDRESS_CHANGE.
After that, according to the SAP people here, the BAPI_TRANSACTION_COMMIT must be called. The XI developer did the webservices and they are being called without problem (returning errors when there are any).
The problem is that when I modify the data and then asks for the update and the commit, the data is passed throught the XI, but is not changed in R/3. Me and the SAP guys here believe that there is a problem that, due to being two separate webservices, when calling the wsdl using BAPI_TRANSACTION_COMMIT , there are no way for the SAP know with transaction to commit.
One of them talked about using BAPI Active X Control, but so far the attempts at that resulted in the same result.
So here is a question: is it possible that a webservice calling BAPI_BUPA_ADDRESS_CHANGE to create a TransactionID, then return it to Web (via response) and then we develop a way to commit the transaction? That ID created can be done in SAP universe only or must br created in Web before calling BAPI_BUPA_ADDRESS_CHANGE ?

Hi garavello,
There is attribute in RFC adapter (XI/PI) which ensures the BAPI_TRANSACTION_COMMIT is executed.
Talk to your XI guy and ensure "Commit Handling for BAPI" attribute is checked.
Regards.

Similar Messages

  • Transaction Locking during multiple Webservice - persistent webs sessions

    Hi All,<br>
    <br>
    Yesterday evening we had a discussion concerning ESA architecture. We want to create (web)services for accessing the SAP business objects (using XI) and use these (web)services via visual composer, webdynpro or custom java development.<br>
    <br>
    It does not seem a big problem to perform creations and reads of transaction, but when we want to change objects, we saw some problems concerning locking/commiting and rollbacks.<br>
    <br>
    From our GUI we would like to be able to go in edit mode and from that moment on, the transaction should be locked. We then want to change certain parameters and commit only when we push the save button.<br>
    <br>
    We can invoke a webservice wich tries to lock the transaction, but at the moment the XI scenario is completed (=the lock is created), the program at SAP side (=proxy in our case) is also finished and the lock is automaticly removed. How can we do locking, when using webservices via XI?<br>
    <br>
    The problem of the rollback and commit we can partially solve by putting more logic in the GUI, but we don't want to do that. How can we do a change of a business object and remember this change without doing a commit on the SAP system.... . Same problem for the rollback.<br>
    <br>
    Is there a away to keep a session "alive" during multiple webservice calls or to simulate it? Every webservice invokation happens in a different context...isn't it?<br>
    <br>
    <br>
    <b>Just to make it a bit more clear.</b><br>
    <br>
    Suppose we create 6 service related to the business object bupa (business partner).<br>
    - read<br>
    - change<br>
    - commit<br>
    - rollback<br>
    - lock<br>
    - unlock.<br>
    <br>
    We create a GUI which uses these services.<br>
    <br>
    <b>Step1:</b> we want to see bupa in detail, so the read webservice is called and the retrieved details are shown in the GUI<br>
    <b>Step2:</b> we want to go in edit mode, so the lock webservice is called to lock the bupa. The bupa should stay locked, untill the unlock is called. Here occurs the problem. The webservice lock is called, XI will trigger the proxy on the SAP system. This proxy will lock the bupa. As soon as the proxy-program is completed, the bupa lock will automaticly be removed ... . We want to keep this lock!<br>
    <b>Step3:</b> we change the bupa using the change webservice. Only the user who locked the bupa should be able to change it.<br>
    Problem concerning the locking occurs: standard we don't know who locked the bupa (this is done by the generic RFC user, configured in sm59). Should we pass some kind of GUID towards the proxy and build some additional logic to know which end-user in fact locked it... . Using the userid isn't sufficient, because a user could logon multiple time simultanously.<br>
    <br>
    Another problem is that we want to change the bupa, without having to do a commit yet.De commit should be called only when pushing the save button. When the proxy is ended and we did not do a commit, the changes are lost normally ... .<br>
    <br>
    What we in fact want to do is Simulate the bsp behaviour.<br>
    <b>Step4:</b>We want to perform a save of the things we changed or a reset. This means the commit or rollback webservice is called.<br>
    <b>Step5:</b> We want to unlock the bupa by calling the unlock webservice.<br>
    <br>
    <br>
    Please give me your comments.<br>
    <br>
    Kind regards<br>
    Joris<br>
    <br>
    Note: Transaction Locking during multiple Webservice "sessions".
    Message was edited by:
            Joris Verberckmoes

    There are multiple strategies how to resolve this. They require that the last change time is available in the changed object, and also that the client keeps the value of the change time when it read the data.
    1. First one wins
    Immediately before posting the changes, the current change time is read from the server. In case it is different from the client buffer, then the client changes are discarted.
    Example:
    1. Client A reads data
    2. Client B reads data
    3. Client B changes its buffer
    4. Client B checks if server change time has changed (result is no)
    5. Client B writes his changes to the server
    6. Client A changes its buffer
    7. Client A checks if server change time has changed (result is yes)
    8. Client A discarts its changes
    2. Last one wins
    Easy. Client just writes his changes to the server, overwriting any changes that might have occured since it read the data.
    Example:
    1. Client A reads data
    2. Client B reads data
    3. Client B changes its buffer
    4. Client B writes his changes to the server
    5. Client A changes its buffer
    6. Client A writes its changes to the server -> changes from client B are lost
    3. Everybody wins
    Most complicated. In case of concurrent changes, the client is responsible for merging his changes with the changes from other clients and to resolve any conflicts.
    Example:
    1. Client A reads data
    2. Client B reads data
    3. Client B changes its buffer
    4. Client B checks if server change time has changed (result is no)
    5. Client B writes his changes to the server
    6. Client A changes its buffer
    7. Client A checks if server change time has changed (result is yes)
    8. Client A merges its changes with changes from client B
    9. Client A writes his changes to the server
    "Last one wins" is definitely not water-proof. But even with the other strategies, data can potentially get lost in the short timeframe when the change time is checked and the actual update.
    To make it more secure, server support is required. E.g. the client could pass the change time from its read access to the server. The server can then reliably reject the update if the change data has been updated in beetween by another client.

  • How to allow create different transaction type for different customer

    We are using CRM 7.0 now. We have two types customer, one is sap customer, the other is potential customer. We want to distinguish the two types customer. And user can create all transaction (for example: quotation, opportunity, activity) the sap customer. And the user only can create activity for  the potential customer, they can't create others transaction type for potential customer. How can we realize it? Thanks.

    Hi,
    We can make use of the BLOCKING REASONS to realize your requirement.
    A Blocking Reason can be assigned to the Business Partner role dependent data  and to the transaction type. A Business partner can be used in a transaction only if he is not assigned to this blocking reason.
    For Ex, In your scenario you can create a Blocking reason 'Not a SAP Customer ' and assign it to all the Potential Customers. You should assign the blocking reason to all the transaction  types which the potential customers should not be allowed.
    Hope it helps. Please let me know if you need further help.
    Regards,
    Vamsi.
    Edited by: Vamsi Krishna Potta on Sep 7, 2010 9:41 AM

  • "No transaction type is available for creating a transaction" service order

    Hi all,
    I am new in IC .
    I try to create service order or service ticket for incoming calls
    We are using CRM 7.0
    After I confirm the account I try to create service order
    But no screen displayed and error "No transaction type is available for creating a transaction" occurs
    in customizing there is a transaction type SRVO, also I copied it to ZRVO
    But here how can I define that this transaction type is assigned to this application??
    Please reply in detail steps.
    Thank you.

    Hi Rupesh,
    Thanks for your reply..
    I made a lot of controls but I can't find where I am wrong..
    My senario is, taking phones, create interaction record and create order for further investigation.
    I copied IC_AGENT role.
    I copied transaction type 0010 to Z010
    I create business transaction named ZBTP for transaction type Z010
    I made Define Transaction Types for Navigation for Z010
    Then Define Business Role -> Assign Function Profiles
    Here I assign my business transaction ZBTP to IC_BT function profile
    But when I connect tot the system with user having this business role
    I can create interaction record with type Z010, it is ok.
    When I press Service Order it gives this error.
    Work center id for Service order is : IC_UIU_SVO
    I copied my business role from IC_AGENT, and here this work center id was not active
    In my business role I made it active.  Is this work center can't used in IC senario
    Also how can I understand which transaction type is needed for it??
    If I know which transaction type is needed to create service order or service ticket under IC, then I will control it of course..
    I also copied transaction type TSVO(service IC) to ZSVO and do the above things for this type too..
    But nothing changed..
    Please help !!

  • Maintenance View - Can you sort/Filter? How to create z transaction for it?

    Hi,
    I will be creating a maintenance view that will be used several times at the end of every month, eventually storing more than 500 entries.
    Is there anyway for the user to be able to sort/filter the maintenance view by field? This would be helpful, since they would like to see what similar records are stored before adding others.
    What are my options?
    Also, how do you create a transaction code to go straight to the maintenance view instead of having to go through SM30?
    Please help.
    Thanks,
    John

    Hey John,
    Is there anyway for the user to be able to sort/filter the maintenance view by field? This would be helpful, since they would like to see what similar records are stored before adding others.
    What are my options?.
    Option1:
    We canu2019t give the sort button (as we give in the nomal reports). But if you know like - based on what field user want to see the sorted output(lets say field MATNR)? then we can create an Event for the table maintainance generator using SE11 and write the code. In this code we sort the output that will be displayed in SM30 as per the requirement.
    Also, how do you create a transaction code to go straight to the maintenance view instead of having to go through SM30?.
    Go-to SE93 and choose the option u201Ctransaction with parametersu201D and give the t.code as SM30 and Check Skip initial screen.
    regards
    Shyam.

  • How to create a Transactional Cube in BW 7.0

    Hi people:
    I'm working with version 7.0 and SEM 6.0 . The help of sap tells that i can create a transactional cube in an option of a check box during de copy of a cube (It works with version 3.5).
    Today i'm very surprised when trying to create a transactional cube and this option isn't avaliable.I try to search an option in the administrator workbench, but i didn't see anything.
    Does anybody knows if the transaccional cubes still alive in this version? If the answer is yes, can anybody please tell me de procedure to create them?
    Thanks in advanced. Points for helpfull answers

    Hi,
    Creating a Real-Time InfoCube
    When creating a new InfoCube in the Data Warehousing Workbench, select the Real-Time indicator.
    Converting a Standard InfoCube into a Real-Time InfoCube
    Conversion with Loss of Transaction Data
    If the standard InfoCube already contains transaction data that you no longer need (for example, test data from the implementation phase of the system), proceed as follows:
           1.      In the InfoCube maintenance in the Data Warehousing Workbench, from the main menu, choose InfoCube ® Delete Data Content. The transaction data is deleted and the InfoCube is set to inactive.
           2.      Continue with the same procedure as with creating a real-time InfoCube.
    Conversion with Retention of Transaction Data
    If the standard InfoCube already contains transaction data from the production operation that you still need, proceed as follows:
    Execute ABAP report SAP_CONVERT_NORMAL_TRANS under the name of the corresponding InfoCube. Schedule this report as a background job for InfoCubes with more than 10,000 data records because the runtime could potentially be long.
    Real-Time InfoCubes
    http://help.sap.com/saphelp_nw04s/helpdata/en/39/100c38e15711d4b2d90050da4c74dc/frameset.htm
    Hope this helps.
    Thanks,
    JituK

  • Error message while creating Sales transaction

    Hi Gurus
    While creating a sales transaction in Mobile Sales I am getting the following error message.
    No Valid sales channel exists for this business partner enters a sales channel in the business partner sales area data.
    I have checked in table SMO_KNVV, there is an entry for this business partner. What can be the possible reason? Please help.
    Regards
    Javed

    Hi Javed,
    Your logged employee should also have some sales area assigned to him/her.
    This can be done by assigning you employee to sales position under sales area in CRM Org Management (PPOMA_CRM).
    Once this is done and org. data is replicated to Mobile. you can very much create the transactions without error.
    Best Regards,
    Pratik Patel
    <b>Reward with Points!</b>

  • ** Create New Transaction Check Box in BPM

    Hi Friends,
    I have ticked the check box 'Create New Transaction' for every step in BPM. In Block I have mentioned 'Block Start' & 'Block End' property as 'New Transaction'.
    I have gone through SAP Help Transactional Behaviour of BPM. Somewhere it is mentioned by check this to increase system performance, database hit time will be reduced. Somewhere 'No New Transaction' is recommened.
    I am confusing on this.
    Could you kindly help me to understand this clearly ? (Like, what is the advantage of 'Create new Transaction'?, If untick what will happen ? ...)
    Kind regards,
    Jegathees P.

    it depends on how you decide to use the property.
    in help it mentions;
    Transactional Behavior for Specific Step Types
    At runtime, the system normally creates a separate transaction for each step. The transaction then covers this step only. However, you can influence the transactional behavior of particular step types. In the step properties, you can define that the system is not to start a new transaction when the step is executed. The system then executes the step in the transaction that was started at the time of execution. Consequently, no background work item is created for the step and the database does not need to be accessed. In this way you can improve system performance.
    by defining to not use a new transaction at the right place you can improve performance.
    It also depends on step types. For example in case of a sync send this is what help says;
    No New Transaction: You can expect better system performance if the system does not create a new transaction for the send step. However, only select this setting if by repeating the send step the result is not changed (idempotency). This is the case, for example, with lookup operations.
    Note
    If you have selected this setting and an error occurs, synchronous sending can also cause problems in the pipeline and the receiver system following the rollback. Messages with an error status can also remain in the pipeline.
    New Transaction: If the result is changed when the step is repeated, choose Create New Transaction. Otherwise the following error situation can occur: The system successfully executes a synchronous send step but an error occurs in the subsequent step. The system rolls back processing and executes all steps in the transaction - including the send step - again. If the send step results in a write-to operation in the receiver system, for example, creating a purchase order, this is also repeated. This can result in semantic errors. 
    Mainly transaction processing helps to have a roll back implemented.

  • Creating a transaction variant doesn't catch the selection screen

    Hi,
    I am trying to create a transaction variant for RERAPP transaction, which calls the report RFRERAPP on selection screen 1000.
    I have used SHD0, specifying the t. code and a name for a transaction variant, then pressed the "Create" button. the selection screen is displayed, I enter the relevant values for the transaction, and press enter. the system prompts me to create some screen variants, but none of them have fields listed, and none of them is for the screen 1000.
    SAP Release 600.
    Any hint on the reason behind this behavior?
    I found another related, unanswered [topic|Transaction Variant for a standard report without transaction code;

    Hi,
    I have faced similar problem..
    Here is the work around.. Might be useful for you..
    1. Create Selection screen variant for report (Modify selection screen 1000 for display/hide in variant maintaince)
    2. Then create "parameter Transaction" with report on Transaction START_REPORT
    D_SREPOVARI-REPORT = <Your Report Name>
    D_SREPOVARI-VARIANT = <Newly created variant>
    Nag
    Edited by: Naga Mohan Kummara on Dec 31, 2009 10:46 AM
    Edited by: Naga Mohan Kummara on Dec 31, 2009 10:49 AM

  • Creating web transaction for sub screen modulr pool

    Hi Experts,
    I am working with SRM . I have crated a module pool program which contains one main screen (9000) and two subscreens (9001, 9002 ). Also one subscreen area ( SUBSCR ). I have created two buttons in the main screen , button1 and button2. When I click on button one 9001 subscreen will appear in the subscreen area and when I press button 2,  9002 subscreen will appear in the subscreen area SUBSCR.  this transaction is working fine in R/3 system. I have created a service in SICF. I need to write the coding in template. I have never written HTML coding for this type of problem.
    Please give me the sample code for the above case.
    thanks in advance
    sankar

    Hello Sankar,
    If you already created this transaction and it works in the R/3 system then just follow the "Creating Internet Services" steps in the ITS help:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/53/302068f84311d4969300a0c94260a5/frameset.htm
    Or you could do it manually:
    1. create a new service in SICF
    2. make sure the "GUI link" is yes
    3. the parameters need to have:
        ~generatedynpro 1
        ~transaction   Z<transaction code>
    4. Activate the service
    That is probably the simplest way, let the ITS dynamically create the HTML for you.
    Edgar

  • Offline Interactive Form Upload for creating Business Transaction

    Hi All,
    I am using CRM Web Request for creating Business Transaction through Offline Interactive Adobe Form.
    For that i have done PDF upload coding and then converting the PDF form to XML format.
    Now the XML format of form is converted to string from xstring.
    And then passing the XML to function module CRM_WEBREQ_EXTERN_CREATE_DOC along with the corresponding request category configured for the web request.Created the corresponding request category structure also.
    still the business transaction is not getting created, the following error message is coming "XML incompatible for data structure of request category" .
    Please respond if anybody has done the same scenario.
    Or is there any other process that can be followed to upload offline interactive adobe form to create one order object.
    Regards,
    Madhu

    Hi Maarten,
    Is that aatribute binded to Dropdown field lying under a node of cardinality 1..1??
    I think if that's so, ur error can be resolved by just putting this attribute in a node with cardinality 1..n.
    Hope this helps..!!
    Thanks,
    Amita

  • How to create a transaction code for a function group with screen 100 as st

    Hello ,
    I have requirement where I need to create a function group and create screen 100, 200, 300 and include the function in the screens.
    Customer asked me to create a transaction with the screen 100 as the starting screen.
    Can you please let me know how to create a transaction code for a function group with screen 100 as starting screen.
    [ It is not a module pool program ].
    Thanks
    Prashanth.
    Moderator message - Please ask a specific question and do not ask the forum to do your work for you - post locked
    Edited by: Rob Burbank on Jun 2, 2009 11:49 AM

    Go to transaction SE93, enter a transaction code that you want and click on "create". Enter a text and select the "Transaction with Parameters" button. In the Default Values section, enter START_REPORT in the transaction field. Check the "skip initial screen" box. In the Name of Screen field section enter the following lines:
    Name of screen field:                               Value
    D_SREPOVARI-REPORTTYPE                RW
    D_SREPOVARI-REPORT                        ZPCA
    Save and transport accordingly.

  • HOW to create new transaction code in SAP

    Dear All
    Thanking you for your cooperation
    Pls help,
    how to create a new transaction code and link with the process??????????
    Thanking you

    Hi
    you can crete Transaction code in Transaction SE93.
    To create a transaction code:
    Enter a transaction code (up to 20 characters).
    Choose Create.
    A dialog box appears. Enter a short text and choose the transaction type.
    The transaction type can be as follows:
    Dialog Transactions
    Report Transactions
    Object-Oriented Transactions
    Variant Transactions
    Parameter Transactions
    In a report transaction, you use a transaction code to start an executable program (type 1). An executable program usually has three steps - data entry (selection screen), data processing (often using a logical database ), and data output (list).
    To create a report transaction, use the Transaction Maintenance transaction (SE93). Once you have entered a transaction code and short description, choose transaction type Program and selection screen (report transaction).
    When you define a report transaction, you can specify the selection screen and variant with which you want it to start.
    You can also protect the report transaction against unauthorized use. To do this, enter the name of an authorization object in the corresponding field.
    Dialog Transactions
    In a dialog transaction, the flow of the program is determined by a sequence of screens. The screens that are called within a transaction should belong to a single ABAP program, usually a module pool (type M program).
    To create a dialog transaction, use the Transaction Maintenance transaction (SE93). Once you have entered a transaction code and short description, choose transaction type Program and screen (dialog transaction).
    You can create transaction codes for Custom query;s created using SQVI also
    Thanks & Regards
    Kishore

  • Create new transaction (Business Activity) and assigned to user Problem

    Dear sir,
    We already have the business activity with in T-code : CIC0, The transaction is  ZACT1 and assigned to user group1 .  It's working fine. However when I copy something from transaction ZACT1 and create to be T-code : ZACT2 . and assigned user group2.  There is the problem that when log on to CIC0 . It is the authorization from for transaction ZACT1.  WHen I go to su53
    it need to have the authoriazaiton on Business transaction type: ZACT1
    Please kindly advise.
    Thank you and best regards,
    Vimol

    When you create new transaction variant, original transaction remains as it is. During creation of transaction variant, when you go to one by one screen, screen variants are created. It uses variant name and can be see on each screen on the top.
    Once you complete trasnaction, you start using this transaction variant instead of original transaction. In SHD0, there is button on the top 'assign screen variants' which allows you to assign all screen variants created above. You can refer help file which i think has procedure to do this.

  • Create a Transaction code for a Report

    Hi
    I have created a report through report painter. How can i create a transaction code for the report.
    Thanks
    J

    Hi,
    T.Code: SE93 - Maintain Transaction
    Transaction Code = Zxxxxxx
    Click on Create.
    Short Text = Name of Report
    Click on the radio button for 'Transaction with Parameters'
    Press Enter.
    Transaction = GR55
    Parameters Window...
    Screen Field : Screen field can be viewed in technical information screen of the report group to which report belongs for which t.code is to created.
    Value: Report Group
    Click on Save.
    Now you have a custom transaction for the report(s) in a report group.
    Hope this helps.
    Please assign points to say thanks.

Maybe you are looking for

  • Oracle Application Server 10g Cloning

    Hi All, Could anyone please advice on How we can create a cloned copy of 10g AS(including infra DB) for DR purpose.Any document or guideline will be highly appreciated. Regards,

  • ITunes digital skips and premature shuffle

    I'm a new user. I have a few dozen favorite instrumentals in a playlist, some purchased and some converted from my CD-ROMs. While listening I frequently hear the computer skip over some brief segments of the music. Sometimes songs are ended before th

  • HP customer care harasment

    I have submitted my laptop  at one of HP customer service station for my laptop's keyboard replacement. During recieving the laptop, the engineer at customer care has throughly inspected the laptop and written every detail on Quotation. but when i vi

  • Why do I get, 'Sorry, I could not process the following files:' ?

    Working in Photoshop CS6 Extended - Think I've done everything right, including setting the action (see images)!  I go to Scripts > Image Processor > Select Folder > Save in same location > Select file type + quality > Run action.  New JPG folder IS

  • Magic Mouse Unusable during Wireless Time Machine Backup

    Hello, I have had the 500gb model Time Capsule for some time which I am using for Time Machine backups. Since its release I have had a Magic Mouse and every time a Time Machine backup is initiated it interfere's with my Magic Mouse and renders it unu