Cross service transactions

Hi,
I'm just trying to understand the concepts of SOA.
Coming from database development I'm maybe thinking to strong
in transactions, but exactly at this point I missed some answers
in the SOA world.
I already tried to find out some things by browsing the internet,
but that didn't really satisfy me. 2PC doesn't seem to be the
preferred method to handle transactions in a SOA environment and I
didn't fully understand how compensation services can fill the gap.
Maybe somebody from this group can clarify those points to me:
- Does every service by definition includes a "commit" at the end?
Of course only talking about services which do some
insert/update/delete operations on a database.
- Or is the "calling" system (frontend, BPEL Engine ...) responsible
to commit changes to the database - or close the transaction?
- How can a rollback be performed ( across multiple services )
e.g. the well know example of those 3 services:
1. book hotel
2. book flight
3. book car
assume that those service calls are done in parallel and 1. and 2.
were working and left a committed status in different databases (or
even tables).
service 3 gave an error and 1. and 2. needed to be undone.
Without any restrictions this can of course be done with
compensation services, but what happens if anybody else in the
meantime changes the database entry which was created in 1. -
maybe, an hotel manager assigns this record to a work plan for the
cleaning team or anything else ....
If nobody didn't update anything on those new records than it won't
be a problem, but otherwise ... ????
How should one handle such situations in a SOA or at least service oriented environment?
Thanks for a short answer
Chris

Hi Chris,
The short answer is that the cancelBooking operations call in the compensation flows of the hotelBooking and flightBooking services will have to handle how a cancellation is done. If you just provide getter and setter operations on tables and leave it to the orchestration layer to add the business logic, I would say that your web services are too fine gained.
Best,
Mathias

Similar Messages

  • Posting of cross company transaction with different doc types

    Hi,
    The scenario is:-
    We have two companies X and Y.
    X makes a payment to Y with the following FI entries:-
    Company Code X
    Dr Vendor Y
    Cr Bank HDFC
    Company Code Y
    Dr Bank ICICI
    Cr Customer X
    Now this needs to be a cross company transaction where the doc type for CC X should be vendor Payment 'KZ' while the doc type for CC Y should be a customer reciept with doc type 'DZ'.
    Although I am able to map the accounts in cross company code config I am not able to split the transaction of different company codes with different document types.
    Is there any way we can do this in standard SAP?
    Thanks in advance,
    Nitish

    Hi
    As per your issue ...There are no possibilities to post   in sap with different document types.
    If you want you can post cross company code transactions with one document types
    Regards
    vamsi

  • CRM Service Transaction Types availability in ECC table CRMC_SRV_BILL_PR

    Dear experts
    I need to customize ECC IMG object CRM_SRV_BILL_MAP (SPRO -> Integration with Other mySAP.com Components -> Customer Relationship Management -> Settings for Service Processes -> Billing Integration -> Map Transaction Types and Item Categories).
    This is to map SAP CRM Service Transactions to SAP ECC Sales Orders for triggering Debit/Credit Memos based on Service Orders. However, the table in which CRM Service Transaction Types are stored is empty (CRMC_SRV_BILL_PR) - how to we get the data in there?
    For some reason, we have one client where this info is available, in another one it's not. We are not sure whether this might be a download object, or if customizing on ECC side is required?
    Thank you in advance for all helpful replies!
    Christian

    Hi,
    As far as my knowledge goes in this area, i have worked on this in my previous project with R/3 version being 4.7. We have had to manually maintain the configuration in the table that you are reffering to. So you would need to maintain the document type to be created and also assign the item categories acordingly.You will ofcourse need to configure the document types and item categories that are relevant to create a debit/credit memo in R/3. Also, you will need to map the CRM item categories to the R/3 credit/debit item categories.
    Hope this helps
    Shiloo

  • Linking Service Transactions

    Hi Experts,
    I'm facing the following issue:
    My client is using the IC WebClient for quite a while now and we've implemented different scenarios. For a new scenario we want to implement "Releasemanagement". The idea behind this is to link (connect) existing service transactions (BUS2000116), which will be separate transactions like incidents or changes, to "a single" servicetransaction (which will be a certain release).
    So a new transaction (e.g. "Release November") will be created with the option to link existing service transactions to this specific release. This should not be a follow-up transaction, because a new release-transaction can be created after the individual service transactions have been created.
    Question: what should be the solution for the aforementioned issue? --> Case Management? Or can this be done using regular service transactions with help of..?
    Kind regards,
    Maarten van der Ven

    Hi Maarten,
    This is an excellent scenario for case management. You link all the related transactions to the single case. There are other ways but they can lead to confusion for the users, and this is what case management was designed for.
    Sincerely,
    Glenn
    Glenn Abel
    Covington Creative
    www.covingtoncreative.com

  • Determine the Approval List of a service transaction on Oder Save BADI.

    Hi
    I have to determine the list of approvers r a service transaction, based on parties involved assignment block thus I have to take manager's details from parties involved and then some how put the same manager in the list of approvals assignment block.
    In my code I just read the et_partner  and then build the et_approval table based on the partner function using crm_order_read.
    I have build the input fields, input fields names, the logical key and when I pass my input_fields to my order_maintain but for some reason the record is not created or updated on the UI.
    Regards
    Thato

    pl check allowed object for maintenance w.r.t. transaction type by  FM CRM_ORDER_OBJECT_ASSI_SEL_CB = get the allowed objects of a process type.
    Also, can you please share code what you have written ?

  • RFC number is not available in induvidual object service transaction list

    Hi All,
    I created RFC (request for change) for an equipment (ind.object) in CRM 7.0. This RFC number should be available in ind.object service transaction for reference. All other corresponding document numbers like incident, problem, service order created aginst to this equipment is having reference number of document number in the service transaction TAB without RFC document number.
    How to bring RFC number in ind.object service transaction TAB?
    Regards
    Ram.

    Hi CRM Experts,
    We use CRM 7.0. I reproduce the steps below
    1. Created RFC using ITCH document
    2. Used an ind. object in the above mentioned RFC document
    3. After closing RFC document, there should be a reference number of the said RFC doc number in the Ind.object
    4. all other related service transactions like incident, service request, service order etcc are updating in the ind.object escept my RFC document
    Need to have RFC number in the Ind.object or Installed base level for reference.
    Regards
    Ram.

  • Middleware-Replicating service transaction from CRM to R/3

    Hi Experts
    We are using the transaction SRVO( Service Transaction) in CRM and it has to be replicated to the R/3.
    Can anybody tell me
    1.what is the load object for replicating this transaction ?
    2.Do i need to make any settings in R/3 for the replication ?
    3.Do i need to create one new transaction in R/3. If so where i have to create the transaction ?
    4. What would be the document type category of the replicated transaction ?
    Thanks in advance
    Nadh.
    Message was edited by:
            Nadh R

    Hi Nadh,
    Service transactions are replicated to R/3 as sales order, with sales items only.i.e. item category SRVS.
    You need to maintain the similar settings as you do while replicating a sales order from CRM to R/3.
    1. Create a order type in R/3 with the same name SRVO (Tcode: VOV8)
    2. Create the item categories with the same name as being determined in the service order (Tcode: VOV7) e.g. SRVS
    3. Mainatin item category determination, the way it is maintained in CRM (Tcode: VOV4)
    Other than this, assign an external number range to your order type SRVO which is same as the internal number range of CRM. Ensure that the customer master and product also exist in R/3.
    Before replicating a service order from CRM to R/3, Create a dummy sales order in R/3 (VA01) with order type SRVO (only for checking purpose)and your sales area,put the customer master and material and check if the transaction is complete. If not you will have to first remove the incomplete stuff, than only an order will get replicated error free.
    If you get incompletion items like Plant, shipping point, contact a SD consultant or post another thread.
    Regards,
    Shalini Chauhan

  • CRM to ECC: Controlling Integration Issue while saving Service Transactions

    Hi,
    We have configured all CRM service functionalities with ECC integration. We have also set up controlling integration following best practices document.
    We are getting the following error whenever we try to save any service transaction (Service Contract or  Service Order).
    u201CAn error occurred in system XXXXECC during account assignmentu201D
    u2022     Errors in prerequisite object Item 2000000042/100 (Notification E IAOM 026)
    u2022     Collector posting not allowed on account (Notification E YAM_RE 013)
    Please help to resolve this issue.
    Thanks,
    Prish

    Hi Ashish,
    Could you please tell me how do we assign the debit memo request to the internal order.
    I am creating a debit memo request from the confirmation. the debit memo request doesnt have the internal order number that was created in ECC. And hence, I am not able to post the revenue from the confirmation to the internal order.
    Could you please help.
    Regards,
    Itisha

  • HR Self-Service Transactions - error notifications

    In our HR system we are using Administrator Self Service, allowing staff to make changes to HR records for people they manage.
    In quite a few cases, our central admin team are receiving notifications with subject lines like:
    Application Error has occurred in your process Change Job and Terms performed on Bloggs, Mr Joseph
    When opening the notification, the error message at the top of the page says a range of things, such as:
    The changes were not applied because This transaction has failed because the employee's record or eligibility status has changed. Submit a new transaction.
    Another user has updated this person's record. Please reject the transaction so the initiator can check whether the change is still valid for the updated record.It would seem that the cause of these is because between the HR Self Service transaction being submitted and the error notification going out, something has changed on the HR record in question.
    Is there any way I can work out where that change is being made, or is that too hard?
    I can see the HR Self Service Transaction via:
    SELECT   hat.creation_date hrss_tx_date
           , wn.notification_id nid
           , wn.begin_date notif_date
           , wn.status
           , wn.item_key
           , REPLACE(
                wn.subject
              , 'Application Error has occurred in your process '
             ) subject
           , fu.user_name originator_uname
           , papf3.full_name hr_record_being_changed
           , fu.description originator_description
           , papf.full_name originator_full_name
           , papf2.full_name manager_full_name
           , fu2.user_name manager_login
           , fu2.description manager_description
        FROM applsys.wf_notifications wn
           , applsys.fnd_user fu
           , applsys.fnd_user fu2
           , hr.hr_api_transactions hat
           , hr.per_all_people_f papf
           , hr.per_all_people_f papf2
           , hr.per_all_people_f papf3
           , hr.per_all_assignments_f paaf
       WHERE hat.item_key = wn.item_key
         AND hat.created_by = fu.user_id
         AND papf2.person_id = fu2.employee_id
         AND hat.creator_person_id = papf.person_id
         AND papf.person_id = paaf.person_id
         AND paaf.supervisor_id = papf2.person_id
         AND hat.selected_person_id = papf3.person_id
         AND SYSDATE BETWEEN papf.effective_start_date AND papf.effective_end_date
         AND SYSDATE BETWEEN papf2.effective_start_date AND papf2.effective_end_date
         AND SYSDATE BETWEEN papf3.effective_start_date AND papf3.effective_end_date
         AND SYSDATE BETWEEN paaf.effective_start_date AND paaf.effective_end_date
         AND recipient_role = 'HRMS_DEV_ROLE'
         AND subject LIKE 'Application Error%'
         AND wn.notification_id = :nid
    ORDER BY wn.begin_date DESC;But if I look at e.g. the per_all_people_f or per_all_assignments_f tables to look for changes made to the same HR record that the Self-Service transaction was for, nothing recent is returned:
    SELECT   papf.employee_number
           , paaf.assignment_number
           , paaf.object_version_number paaf_ovn
           , papf.creation_date papf_creation_date
           , papf.last_update_date papf_last_update_date
           , paaf.creation_date paaf_creation_date
           , paaf.last_update_date paaf_last_update_date
           , papf.object_version_number papf_ovn
        FROM hr.per_all_people_f papf
           , hr.per_all_assignments_f paaf
       WHERE papf.person_id = paaf.person_id
         AND papf.full_name LIKE :pn
    ORDER BY paaf.last_update_date DESC;I have seen stuff on My Oracle Support about "object version number" e.g. 1300998.1 says:
    "This is an expected behavior. Since after first approval the object version number of contact's personal details has changed. Now when you try to approve second notification we will compare the OVN in transaction tables to the OVN in database (which got changed). Hence we get an object version mismatch and above error."However, I am still stuck trying to see what has changed. I need to find this so I can go to the functional people who don't understand why they are getting the error notifications, so say "Look, this has changed since the Self-Service transaction was submitted, hence the error".
    Any advice would be much appreciated.
    Thanks

    Hi,
    In the end I wrote some SQL which identified the fact that the HR tables had been updated in Core Apps AFTER a Self-Service transaction had been started.
    SELECT distinct hat.creation_date workflow_start
           , wn.notification_id nid
           , (SELECT MAX(last_update_date) FROM hr.per_all_assignments_f paaf2 WHERE paaf2.person_id = papf3.person_id) last_assig_update
           , wn.begin_date error_date
           , wn.begin_date - (SELECT MAX(last_update_date) FROM hr.per_all_assignments_f paaf2 WHERE paaf2.person_id = papf3.person_id) dd
           , wn.item_key
                 , SUBSTR(
                      wn.subject
                    , 48
                    , INSTR(SUBSTR(wn.subject, 48 + 2), 'performed on ')
                   ) transaction_type
                 , CASE
                      WHEN SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) LIKE '%Miss%' THEN REPLACE( SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) , ' Miss' , '' )
                      WHEN SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) LIKE '%Mrs%' THEN REPLACE( SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) , ' Mrs' , '' )
                      WHEN SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) LIKE '%Ms%' THEN REPLACE( SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) , ' Ms' , '' )
                      WHEN SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) LIKE '%Mr%' THEN REPLACE( SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 ) , ' Mr' , '' )
                      ELSE SUBSTR( wn.subject , INSTR(wn.subject, 'performed on ') + 13 , LENGTH(wn.subject) - INSTR(wn.subject, 'performed on ') + 13 )
                   END performed_on      
           , wn.subject
           , papf3.full_name
           , papf3.employee_number empno
           , fu.user_name by_un
           , fu.description by_desc
           , papf.full_name by_name
        FROM applsys.wf_notifications wn
           , applsys.fnd_user fu
           , hr.hr_api_transactions hat
           , hr.per_all_people_f papf
           , hr.per_all_people_f papf3
           , hr.per_all_assignments_f paaf
       WHERE hat.item_key = wn.item_key
         AND hat.created_by = fu.user_id
         AND hat.creator_person_id = papf.person_id
         AND papf.person_id = paaf.person_id
         AND hat.selected_person_id = papf3.person_id
         AND SYSDATE BETWEEN papf.effective_start_date AND papf.effective_end_date
         AND SYSDATE BETWEEN papf3.effective_start_date AND papf3.effective_end_date
         AND SYSDATE BETWEEN paaf.effective_start_date AND paaf.effective_end_date
         AND subject NOT LIKE '%Phone Numbers%'
         AND recipient_role = 'HRMS_DEV_ROLE'
         AND subject LIKE 'Application Error%'
         AND papf.current_employee_flag = 'Y'
         AND paaf.assignment_type = 'E'
    ORDER BY 1 DESCIt helped compare things in the background and prove in our case that there wasn't a system problem.
    Thanks

  • Cross-co-transactions

    sap guru's:-
      Tell  me about cross company code transaction, can u give any example with explanation,where and what are the pre-requisites. plz help this one.......

    Hi Madhu,
    OBYA is the T.Code for Cross Company Postings.  Sometimes in some of the scenarios, 1 company code is purchasing the material and 2 company code is making payment, in that case, we are using the Cross Company transactions.
    In OBYA screen, you have to assign Gl account of 2 company code in 1 company code like the same for other company code also.
    while posting under new company code you have to select different company code.
    Assign points without fail.
    ALL THE BEST.

  • Does BPEL Server have support "Web Services Transactions specifications"?

    The Web Services Transactions specifications define mechanisms for transactional interoperability between Web services domains and provide a means to compose transactional qualities of service into Web services applications.
    Have anyone can explain oracle process manager have any support about "Web Services Transactions specifications" ?
    or oracle BPEL process manager how to coordinate the actions of distributed applications. Such coordination protocols are used to support a number of applications, including those that need to reach consistent agreement on the outcome of distributed activities.
    appreciate any idea for this issue, thanks a lot.

    You have a number of options.  You can use the built in Screen Sharing application, you can purchase Apple Remote Desktop for each user, you could look at 3rd party tools like GoToMyPC or if you are looking to replace Terminal Services look at AquaConnect. 
    The tool you use will be determined by what the users have at home.  If they are also using Macs, they can use all the native tools.  If they are on PC, they can use either a VNC client or many of the 3rd paty tools.

  • Text Determination in Sales & Service Transactions

    Hello Guru's,
    We have a Text Determination Procedure in Place for our Sales and Service Transactions.
    Now my users can enter text and and modify it by re-opening the actvity.
    How do i force them to enter new text only???
    regards
    Amar Reddy

    Hi,
    1. Text type - A002, Desc - Note
        Under 'Definition of Procedure'
        Sequence - 0020
        Changes - P
        Transfer Type - Not Yet Defined
    2. Text type - A008, Desc - Log
        Under 'Definition of Procedure'
        Sequence - 0030
        Changes - R
        Transfer Type - Not Yet Defined
    Reward points if helpful
    Shridhar

  • Logs of deleted Service transactions

    Hi to All,
    Good Day!
    I just want to ask if there's a log where I can view the details of deleted service transactions? Hoping for you kind response. =)
    Thanks!
    Lynne

    Hi,
    In SAP CRM Business Process, Service Transactions are not deleted directly. As they are important transactional data and which might be needed for future reference you can keep it somewhere from where you can refer. In some countries, it is mandatory to keep the documents before removing them from the system.
    So, all the Service Transaction ( Service Orders, Service Confirmations, etc.) are first archived in the system using SAP Archiving (http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVARL/BCSRVARL.pdf). Then based on the future business they will be backed up and later deleted from the CRM Online or Offline Reference System.
    Have a look at this link http://help.sap.com/saphelp_crm70/helpdata/EN/4e/309e3a462f8a09e10000000a114084/content.htm
    Hope this helps.
    Thanks,
    Samantak

  • Interaction History / Service Transactions

    Hi All,
    We are having crm 2007 and we are implementing the service scenario.
    When we create a contrat 123 for a business Partner ABC. Normally the reference/Interaction history etc shall also be
    displayed in the Business Partner. i.e. all the relevant  service transactions relevant to Partner ABC.
    Could anybody tell where can we set this in CRM 2007.
    Regards,

    hi,
    try this
    IMG>CRM>Master data >BP>Accounts and Contact Persons in the Portal-->Specify Display Options for Interaction History/Activities/Opportunities
    Select the area as -
    SAP_CRM_CUST_INTERACT_CENTER or your relevant area
    and make the settings for interaction history. you should be able to se the Fact sheet details with dates
    Cheers!
    Please reward if helpful
    Raj

  • Open service transactions in ICWeb

    Hi all
    I have a scenario that an IC Agent needs to open 2 Service transactions for the same Account at the same time.
    For Example: a contact person is called and wants to Open Service Order for 2 products. The classification is different and so the other data.
    Does the ICweb Client give a Solution for this scenario?
    Thanks for your reply!

    Hi
    You Should use business transaction profile that have Interaction record and then DEPENDENT transaction your service order.
    if you do not want the users to see the IR you first implement the status profile to default "closed" and do not show it on the navigation bar.
    Now after confirm
    one Service Order is open.
    if you want to open another Service Order you should press "NEW" button and new service order is opened.
    when you press END
    2 Service Order is Opened & 1 IR.
    If you confirm Account and do not navigate to Service Order 1 IR will save when you press END.
    The logic is that all incoming call will save.
    I create Z incoming call with status profile that have "closed" default.
    Merav

Maybe you are looking for