CRM - CRM_ORDER_MAINTAIN - Appointments

Hi all
  A client is using the CRM interaction centre (trxn. CIC0). When a date is set in a transaction within CIC0, they want that date copied to all the follow up activities as well when the user saves.
  We've already used BADI ORDER_SAVE and FM's CRM_ORDER_READ, CRM_ORDER_MAINTAIN, and CRM_ORDER_SAVE to achieve this for some customer fields that were added in on a customer screen within CIC0 but cannot seem to achieve the same thing for the standard dates (appointments). When testing, the dates don't get copied through and don't appear on the Bdoc's (getting them onto the Bdoc's is the main priority).
  Any guidance from ABAP developer's experienced with this area of CRM would be greatly appreciated.
  The relevant coding from within the BADI is below:- (for ease of reading I've removed the coding going through the document flow and building up the internal table of GUID's that need to have the date maintained)
METHOD if_ex_order_save~prepare .
  TYPES: BEGIN OF t_guids,
           guid TYPE crmt_doc_flow_wrk-objkey_a,
         END OF t_guids.
Header GUID's.
  DATA: lt_header_guid       TYPE crmt_object_guid_tab,
        ls_header_guid       TYPE crmt_object_guid,
Read appointments.
        lt_appointment_wrk   TYPE crmt_appointment_wrkt,
        ls_appointment_wrk   TYPE crmt_appointment_wrk,
Update appointments.
        lt_appointment_com   TYPE crmt_appointment_comt,
        ls_appointment_com   TYPE crmt_appointment_com,
GUID's
        lt_guids             TYPE TABLE OF t_guids,
        ls_guids             TYPE t_guids,
Update fields.
        ls_input_fields      TYPE crmt_input_field,
        lt_input_fields      TYPE crmt_input_field_tab,
        ls_input_field_names TYPE crmt_input_field_names,
        lt_input_field_names TYPE crmt_input_field_names_tab,
Order header data.
        lt_orderadm_h        TYPE crmt_orderadm_h_comt,
Objects to be updated.
        lt_objects_to_save   TYPE crmt_object_guid_tab,
Exceptions.
        lt_exception         TYPE crmt_exception_t,
Updated documents.
        lt_saved_objects     TYPE crmt_return_objects,
        lt_objects_not_saved TYPE crmt_object_guid_tab,
Local update task.
        lv_update_task_local TYPE boolean.
Use a global variable to ensure this method is only called once per user save.
  IF gv_first IS INITIAL.
    gv_first = 'X'.
Get the dates for the current activity.
    ls_header_guid = iv_guid.
    INSERT ls_header_guid INTO TABLE lt_header_guid.
    CALL FUNCTION 'CRM_ORDER_READ'
      EXPORTING
        it_header_guid       = lt_header_guid
      IMPORTING
        et_appointment       = lt_appointment_wrk
      EXCEPTIONS
        document_not_found   = 1
        error_occurred       = 2
        document_locked      = 3
        no_change_authority  = 4
        no_display_authority = 5
        no_change_allowed    = 6
        OTHERS               = 7.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
    DELETE lt_appointment_wrk WHERE appt_type      <> 'ZLSC00003'
                                 OR timestamp_from IS INITIAL.
Check if the conclusion date has been set (appointment type ZLSC00003).
    READ TABLE lt_appointment_wrk
      INTO ls_appointment_wrk
      WITH KEY appt_type = 'ZLSC00003'.
    IF sy-subrc = 0.
Coding removed here, build up the follow up GUID's from the document flow.
lt_header_guid now contains the parent GUID and the follow up activty GUID's
Get all of the date details for all of the documents.
      CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          it_header_guid       = lt_header_guid
        IMPORTING
          et_appointment       = lt_appointment_wrk
        EXCEPTIONS
          document_not_found   = 1
          error_occurred       = 2
          document_locked      = 3
          no_change_authority  = 4
          no_display_authority = 5
          no_change_allowed    = 6
          OTHERS               = 7.
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
Get rid of date entries which aren't conclusion dates or aren't the same conclusion date.
      DELETE lt_appointment_wrk WHERE appt_type      <> 'ZLSC00003'
                                   OR timestamp_from <> ls_appointment_wrk-timestamp_from.
Process each of the documents and, if they don't have a conclusion date with the same value,
set up the internal tables to update the document.
      LOOP AT lt_header_guid INTO ls_header_guid.
Check if it has a conclusion date with the correct value already.
        READ TABLE lt_appointment_wrk
          WITH KEY ref_guid = ls_header_guid
          TRANSPORTING NO FIELDS.
        IF sy-subrc = 0.
          DELETE lt_header_guid.
          CONTINUE.
        ENDIF.
Set up the fields to be updated.
        CLEAR lt_input_field_names.
        ls_input_field_names-fieldname = 'REF_KIND'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'APPT_TYPE'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'TIMESTAMP_FROM'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'TIMEZONE_FROM'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'TIMESTAMP_TO'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'TIMEZONE_TO'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_field_names-fieldname = 'TIME_UNIT'.
        INSERT ls_input_field_names INTO TABLE lt_input_field_names.
        ls_input_fields-ref_handle  = '0000000000'.
        ls_input_fields-ref_guid    = ls_header_guid.
        ls_input_fields-objectname  = 'APPOINTMENT'.
        ls_input_fields-field_names = lt_input_field_names.
        INSERT ls_input_fields INTO TABLE lt_input_fields.
Set up the values for the fields to be updated.
        ls_appointment_com-ref_handle     = '0000000000'.
        ls_appointment_com-ref_guid       = ls_header_guid.
        ls_appointment_com-ref_kind       = 'A'.
        ls_appointment_com-appt_type      = 'ZLSC00003'.
        ls_appointment_com-timestamp_from = ls_appointment_wrk-timestamp_from.
        ls_appointment_com-timezone_from  = ls_appointment_wrk-timezone_from.
        ls_appointment_com-timestamp_to   = ls_appointment_wrk-timestamp_to.
        ls_appointment_com-timezone_to    = ls_appointment_wrk-timezone_to.
        ls_appointment_com-time_unit      = ls_appointment_wrk-time_unit.
        INSERT ls_appointment_com INTO TABLE lt_appointment_com.
Create an entry in the internal table used to determine which documents will be updated.
        INSERT ls_header_guid INTO TABLE lt_objects_to_save.
      ENDLOOP.
Change the values in the documents
      IF NOT lt_appointment_com IS INITIAL.
        CALL FUNCTION 'CRM_ORDER_MAINTAIN'
          EXPORTING
            it_appointment    = lt_appointment_com
          IMPORTING
            et_exception      = lt_exception
          CHANGING
            ct_orderadm_h     = lt_orderadm_h
            ct_input_fields   = lt_input_fields
          EXCEPTIONS
            error_occurred    = 1
            document_locked   = 2
            no_change_allowed = 3
            no_authority      = 4
            OTHERS            = 5.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
      ENDIF.
Save the changed date values.
      IF NOT lt_objects_to_save IS INITIAL.
        CALL FUNCTION 'CRM_ORDER_SAVE'
          EXPORTING
            it_objects_to_save   = lt_objects_to_save
            iv_update_task_local = lv_update_task_local
          IMPORTING
            et_saved_objects     = lt_saved_objects
            et_exception         = lt_exception
            et_objects_not_saved = lt_objects_not_saved
          EXCEPTIONS
            document_not_saved   = 1
            OTHERS               = 2.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
      ENDIF.
    ENDIF.
    CLEAR gv_first.
  ENDIF.
ENDMETHOD.

Hello Mark,
did you know that there is also a Forum for SAP CRM: Webclient UI - Framework?
Regards
Gregor

Similar Messages

  • CRM_ORDER_MAINTAIN - Appointments

    Hi all
    A client is using the CRM interaction centre (trxn. CIC0). When a date is set in a transaction within CIC0, they want that date copied to all the follow up activities as well when the user saves.
    We've already used BADI ORDER_SAVE and FM's CRM_ORDER_READ, CRM_ORDER_MAINTAIN, and CRM_ORDER_SAVE to achieve this for some customer fields that were added in on a customer screen within CIC0 but cannot seem to achieve the same thing for the standard dates (appointments). When testing, the dates don't get copied through and don't appear on the Bdoc's (getting them onto the Bdoc's is the main priority).
    Any guidance from ABAP developer's experienced with this area of CRM would be greatly appreciated.
    The relevant coding from within the BADI is below:- (for ease of reading I've removed the coding going through the document flow and building up the internal table of GUID's that need to have the date maintained)
    METHOD if_ex_order_save~prepare .
    TYPES: BEGIN OF t_guids,
    guid TYPE crmt_doc_flow_wrk-objkey_a,
    END OF t_guids.
    * Header GUID's.
    DATA: lt_header_guid TYPE crmt_object_guid_tab,
    ls_header_guid TYPE crmt_object_guid,
    * Read appointments.
    lt_appointment_wrk TYPE crmt_appointment_wrkt,
    ls_appointment_wrk TYPE crmt_appointment_wrk,
    * Update appointments.
    lt_appointment_com TYPE crmt_appointment_comt,
    ls_appointment_com TYPE crmt_appointment_com,
    * GUID's
    lt_guids TYPE TABLE OF t_guids,
    ls_guids TYPE t_guids,
    * Update fields.
    ls_input_fields TYPE crmt_input_field,
    lt_input_fields TYPE crmt_input_field_tab,
    ls_input_field_names TYPE crmt_input_field_names,
    lt_input_field_names TYPE crmt_input_field_names_tab,
    * Order header data.
    lt_orderadm_h TYPE crmt_orderadm_h_comt,
    * Objects to be updated.
    lt_objects_to_save TYPE crmt_object_guid_tab,
    * Exceptions.
    lt_exception TYPE crmt_exception_t,
    * Updated documents.
    lt_saved_objects TYPE crmt_return_objects,
    lt_objects_not_saved TYPE crmt_object_guid_tab,
    * Local update task.
    lv_update_task_local TYPE boolean.
    * Use a global variable to ensure this method is only called once per user save.
    IF gv_first IS INITIAL.
    gv_first = 'X'.
    * Get the dates for the current activity.
    ls_header_guid = iv_guid.
    INSERT ls_header_guid INTO TABLE lt_header_guid.
    CALL FUNCTION 'CRM_ORDER_READ'
    EXPORTING
    it_header_guid = lt_header_guid
    IMPORTING
    et_appointment = lt_appointment_wrk
    EXCEPTIONS
    document_not_found = 1
    error_occurred = 2
    document_locked = 3
    no_change_authority = 4
    no_display_authority = 5
    no_change_allowed = 6
    OTHERS = 7.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.
    DELETE lt_appointment_wrk WHERE appt_type <> 'ZLSC00003'
    OR timestamp_from IS INITIAL.
    * Check if the conclusion date has been set (appointment type ZLSC00003).
    READ TABLE lt_appointment_wrk
    INTO ls_appointment_wrk
    WITH KEY appt_type = 'ZLSC00003'.
    IF sy-subrc = 0.
    * Coding removed here, build up the follow up GUID's from the document flow.
    * lt_header_guid now contains the parent GUID and the follow up activty GUID's
    * Get all of the date details for all of the documents.
    CALL FUNCTION 'CRM_ORDER_READ'
    EXPORTING
    it_header_guid = lt_header_guid
    IMPORTING
    et_appointment = lt_appointment_wrk
    EXCEPTIONS
    document_not_found = 1
    error_occurred = 2
    document_locked = 3
    no_change_authority = 4
    no_display_authority = 5
    no_change_allowed = 6
    OTHERS = 7.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.
    * Get rid of date entries which aren't conclusion dates or aren't the same conclusion date.
    DELETE lt_appointment_wrk WHERE appt_type <> 'ZLSC00003'
    OR timestamp_from <> ls_appointment_wrk-timestamp_from.
    * Process each of the documents and, if they don't have a conclusion date with the same value,
    * set up the internal tables to update the document.
    LOOP AT lt_header_guid INTO ls_header_guid.
    * Check if it has a conclusion date with the correct value already.
    READ TABLE lt_appointment_wrk
    WITH KEY ref_guid = ls_header_guid
    TRANSPORTING NO FIELDS.
    IF sy-subrc = 0.
    DELETE lt_header_guid.
    CONTINUE.
    ENDIF.
    * Set up the fields to be updated.
    CLEAR lt_input_field_names.
    ls_input_field_names-fieldname = 'REF_KIND'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'APPT_TYPE'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'TIMESTAMP_FROM'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'TIMEZONE_FROM'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'TIMESTAMP_TO'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'TIMEZONE_TO'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'TIME_UNIT'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_fields-ref_handle = '0000000000'.
    ls_input_fields-ref_guid = ls_header_guid.
    ls_input_fields-objectname = 'APPOINTMENT'.
    ls_input_fields-field_names = lt_input_field_names.
    INSERT ls_input_fields INTO TABLE lt_input_fields.
    * Set up the values for the fields to be updated.
    ls_appointment_com-ref_handle = '0000000000'.
    ls_appointment_com-ref_guid = ls_header_guid.
    ls_appointment_com-ref_kind = 'A'.
    ls_appointment_com-appt_type = 'ZLSC00003'.
    ls_appointment_com-timestamp_from = ls_appointment_wrk-timestamp_from.
    ls_appointment_com-timezone_from = ls_appointment_wrk-timezone_from.
    ls_appointment_com-timestamp_to = ls_appointment_wrk-timestamp_to.
    ls_appointment_com-timezone_to = ls_appointment_wrk-timezone_to.
    ls_appointment_com-time_unit = ls_appointment_wrk-time_unit.
    INSERT ls_appointment_com INTO TABLE lt_appointment_com.
    * Create an entry in the internal table used to determine which documents will be updated.
    INSERT ls_header_guid INTO TABLE lt_objects_to_save.
    ENDLOOP.
    * Change the values in the documents
    IF NOT lt_appointment_com IS INITIAL.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
    EXPORTING
    it_appointment = lt_appointment_com
    IMPORTING
    et_exception = lt_exception
    CHANGING
    ct_orderadm_h = lt_orderadm_h
    ct_input_fields = lt_input_fields
    EXCEPTIONS
    error_occurred = 1
    document_locked = 2
    no_change_allowed = 3
    no_authority = 4
    OTHERS = 5.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.
    ENDIF.
    * Save the changed date values.
    IF NOT lt_objects_to_save IS INITIAL.
    CALL FUNCTION 'CRM_ORDER_SAVE'
    EXPORTING
    it_objects_to_save = lt_objects_to_save
    iv_update_task_local = lv_update_task_local
    IMPORTING
    et_saved_objects = lt_saved_objects
    et_exception = lt_exception
    et_objects_not_saved = lt_objects_not_saved
    EXCEPTIONS
    document_not_saved = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.
    ENDIF.
    ENDIF.
    CLEAR gv_first.
    ENDIF.
    ENDMETHOD.

    Hi All,
    I am currently trying to insert a date into DATE TYPE(APPT_TYPE) in Item Level. There are no errors in the code but the transaction is not updated. Can somebody help me out ? Thanx a lot...
    MOVE: gw_service_item_guid_ubb TO gw_appointment-       
          ref_guid,         
          'B' TO gw_appointment ref_kind,                         
          'CONTDISMAN' TO gw_appointment-appt_type,               
          '20060901220000' TO gw_appointment-timestamp_from,
          '20060901220000' TO gw_appointment-timestamp_to,
          'CET' TO gw_appointment-timezone_from,
          'CET' TO gw_appointment-timezone_to,
          'B' TO gw_appointment-mode.
    APPEND gw_appointment TO gt_appointment_ubb.
    gw_fname-fieldname = 'APPT_TYPE'.
    gw_fname-changeable = 'X'.
    insert gw_fname into table gt_fname.
    gw_fname-fieldname = 'TIMESTAMP_FROM'.
    gw_fname-changeable = 'X'.
    INSERT gw_fname INTO TABLE gt_fname.
    gw_fname-fieldname = 'TIMESTAMP_TO'.
    gw_fname-changeable = 'X'.
    INSERT gw_fname INTO TABLE gt_fname.
    gw_fname-fieldname = 'TIMEZONE_FROM'.
    gw_fname-changeable = 'X'.
    INSERT gw_fname INTO TABLE gt_fname.
    gw_fname-fieldname = 'TIMEZONE_TO'.
    gw_fname-changeable = 'X'.
    INSERT gw_fname INTO TABLE gt_fname.
    gw_input-ref_guid = gw_service_item_guid_ubb.
    gw_input-ref_kind = 'B'.
    gw_input-objectname = 'APPOINTMENT'.
    gw_input-logical_key = '0000'.
    gw_input-ref_handle = '0000000000'.
    gw_input-field_names = gt_fname.
    APPEND gw_input TO gt_input_fields.
    gw_item-guid = gw_service_item_guid_ubb.
    gw_item-header = '39CF8B702B8B334F90AF4B23CA991925'.
    gw_item-ITM_TYPE = gw_orderadm_i_ubb-itm_type.
    gw_item-mode = 'B'.
    APPEND gw_item TO gt_item.
    CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
    CALL FUNCTION 'CRM_ORDER_INITIALIZE'
      EXPORTING
        iv_initialize_whole_buffer = true
      EXCEPTIONS
        OTHERS           = 2.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
      EXPORTING
        it_appointment                = gt_appointment_ubb
        it_status                     = gt_status_maint
      CHANGING
        CT_ORDERADM_I                 = gt_item
        ct_input_fields               = gt_input_fields
    EXCEPTIONS
       error_occurred                = 1
       document_locked               = 2
       no_change_allowed             = 3
       no_authority                  = 4
       OTHERS                        = 5.
    CALL FUNCTION 'DIALOG_SET_WITH_DIALOG'.
    CALL FUNCTION 'CRM_ORDER_SAVE'
      EXPORTING
        it_objects_to_save   = gt_obj_guids
      IMPORTING
        et_saved_objects     = gt_saved_objects
        et_objects_not_saved = gt_objects_not_saved
      EXCEPTIONS
        document_not_saved   = 1
        OTHERS               = 2.
    IF sy-subrc EQ 0.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    ENDIF.
    COMMIT WORK.
    Useful help will be awarded. : )

  • Activity status , and partner changed by FM CRM_ORDER_MAINTAIN

    Hi any one used FM CRM_ORDER_MAINTAIN to change the Activity status and the BP assign to the activity. If yes please help me.
    Import parameters:
            it_partner 
            it_status
    CHANGING
            ct_orderadm_i
            ct_input_fields

    Hello Sachin,
    Search for the thread "CRM_ORDER_MAINTAIN - Appointments" on SDN. This talks of your problem and should give u the exact solution.
    https://forums.sdn.sap.com/post!reply.jspa?threadID=47889
    Reward points if it helps !!
    Rgds
    Priyanka Bansal

  • To create an APPOINTMENT using report in webui

    Hello Experts,
    Please send the steps how to create appointment or quotation or any example report program(with sample code) in web ui.

    I guess code in below post would help you -
    CRM_ORDER_MAINTAIN - Appointments
    Regards,
    BJ

  • Create orders in CRM with repetitive CRM_ORDER_MAINTAIN remote calls

    Dear All,
    Though we all must have done a lot of playing around with CRM but I am sure that a lot of us would find this as a tricky one. We know that CRM Web-UI framework at the back-end is actually a repetitive, Remote call framework to CRM APIs and SICFs.
    Now I have a requirement to create a sales order for example; I shall provide custom screens on HTML or UI5 and I have to provide a similar experience to user where in the user will add values to fields on the screen and press enter etc. Hence I will initially REMOTELY( Through custom RFC ) call CRM_ORDER_MAINTAIN and create a blank sales order( as done on crm ui framework ) and then on each subsequent enter I want to call CRM_ORDER_MAINTAIN FM with the guid I already have from first call.
    I will call ORDER_SAVE in the end only, to prevent wastage of memory. Also I want to avoid generating new GUIDS at each enter or round trip, hence want to continue with the guid/buffer values of the first call till the save.
    My doubt is in case I remotely call CRM_ORDER_MAINTAIN the second time with the GUID I got in the first call, will the system still have all those buffered values( order_header / guid ) of the first call in the second call or simply saying : will CRM_ORDER_MAINTAIN work in this case even if I pass the guid in subsequent calls?
    P.S : Please don't provide alternate solutions of saving on each enter / new guid generation on each enter.
    /Hasan

    Absolutely my dear friend, I am happy that someone is surely taking interest .
    We have long understood that a jazzy/intuitive UI is always welcomed over a slow/dull UI.
    Wasted guids is a case when you create a new transaction through MAINTAIN but then don't save it, then in the same session you again send a create command( for the same transaction ), new guids are requested from the system when you call MAINTAIN for header, items, partner links etc. and this cycle continues until you save.
    The best practice is not to waste this because a create has a lot of overheads over a change like : create new guids , create time checks etc. Hence CRM architecture is also based on a single create per transaction per session. CRM UI runs on a statefull HTTP session , which is the reason behind the buffers being retained even on repeated RFC/HTTP calls.
    /Hasan

  • Auto send CRM Appointments

    I have a workflow that creates appointments in CRM 2011.  The appointment is created setting a user as the organizer.
    The issue is that the appointment syncs to the Outlook client, and the user needs to open it on their Outlook calendar and click send before it is distributed.
    If I use the email router, the appointment is not emailed out either.  I have also tried manually sending an appointment using the email router but it doesn't get picked up by the email router.  I'm starting to think that sending appointments is
    outside the scope of the email router for CRM 2011.
    I have looked in the database at the ActivityPointerBase and see that once the organizer opens the appointment and clicks send, the ApptGlobalObjectId and ApptOutlookOwnerApptId columns are updated.  But I'm not seeing anything else on that table updating. 
    My hope was to find something similar to a pending email flag.
    From what little I have seen on a similar scenario where Appointments created in CRM are automatically sent, it took a plugin sold by Power Objects but I think it was for CRM 4.  I also don't see anything about the 2 columns ApptGlobalObjectId and ApptOutlookOwnerApptId
    that I see getting updated when Outlook sends the appointment after the organizer clicks send in Outlook.
    So I'm thinking that the best option is a plugin.  Does anyone know what table(s) and column(s) is required to be updated by a plugin in order to automatically send appointments created by CRM through the organizers Outlook client without having the
    organizer open the appointment in Outlook and clicking send?
    Jason Peterson

    This is CRM 2011, so it doesn't have server side sync.  But even with server side sync, I'm not sure it would help.  The workflow that creates the appointment is synced to the organizer's Outlook through the Outlook client synchronization. 
    It isn't received by the organizer as a mailed or sent appointment.  In the Outlook calendar, the appointment looks as if the user created it and then only saved it without sending it out.
    There is obviously some flag related to the activity base tables that indicate if the appointment should be mailed out or held waiting for the user to open it and click the send button.
    For example, you can see this in CRM.  There are 2 different ways to create emails through workflow.  1. You can choose create email that is then automatically send, or 2. you can choose to create a record, then choose record type email. 
    This creates the email activity, but holds it in a pending state until the user opens the activity in CRM and clicks the send button.
    I want something similar to #1 above.  Here is a blog article from Power Objects that demonstrates what I'm looking for.
    Jason Peterson

  • Appointments in Outlook not showing up in CRM activities?

    The appointments I make in Outlook aren´t showing up in my CRM activities (the appointments I make in CRM do show up in Outlook calendar - so it´s only syncing one way)?

    Assuming that you are connected to CRM using outlook client:
    Open the appointment from calender in your outlook. click on Track/Track in CRM depending on the CRM version you are using. This will create an Appointment activity in CRM. but will not link the appointment to a particular CRM record.
    To link this appointment to a particular CRM record (e.g. contact, account, case..etc..) click on Set Regarding and select more. Search for the record in look up dialog box, select and add.
    refer to link:
    http://www.microsoft.com/en-US/dynamics/crm-customer-center/track-outlook-appointments-in-crm-for-outlook.aspx

  • Wirelessly push CRM appointments to iPhone 4

    I use Outlook, MS Dynamics CRM 2011 and Exchange Active Sync for work.  My Outlook appointments sync wirelessly to my iPhone 4 iOS 6.  My problem is when I create an appointment in CRM.  Once the appointment is created it shows up in Outlook but I get an email stating 
    Synchronization with your iPhone failed for "X" items.
    The following items couldn't be sent to your mobile phone. They haven't been deleted. You should be able to access them using either Outlook or Outlook Web App.
    However, I am able to sync the appointment to my phone by connecting it to the computer and using iTunes.  I used to be able to have those CRM appointments sync wirelessly to my blackberry and I would like to know if it is possible to set that up with my iPhone?
    Thanks!

    Mine is doing the same thing!!! I think my 2G thinks it's still activated, when I connect it to iTunes it still has my phone number. How do I de-activate it? Today I want to use it as a phone actually and there is no activate option.

  • SAP CRM Groupware Integration - Create appointments on mobile phone.

    Hi all
    We have implemented the serverside groupware integration with CRM 2007 and Exchange.
    Usually the appointments in Outlook are created with category
    "CRM_ACT_001". Unfortunately some Mobile Phones (like the iPhone) are not
    able to set the category of an appointment.
    Our users usually create their Outlook appointments on their mobile.
    So we had to customize the GWAdapter to let through all activities from
    groupware (without filtering for the category).
    To do so we changed the spro entry "Maintain Groupware Object Selectionand Retrieval":
    - From: ACT Categories CRM_ACT*
    - To: ACT Categories *
    Unfortunately this causes a lot of problems:
    - The category of the activity in CRM got deleted everytime you change the appointment in outlook.
    - When you set a meeting in Outlook to "private" the activities in
    CRM AND Outlook are deleted automatically.
    Does anyone had similar problems? How can you synchronize the calender on the mobile phone with CRM?
    Thanks in advance.
    Marco

    Checked the issue with SAP.
    You cannot synchronize the appointments without giving an category. On iphone and most other smartphones you cannot chose a category.
    Another "contra" of the CRM Groupware Integration....

  • CRM appointments not synchronizing to outlook 2007 correctly

    Hi CRM gurus,
    The appointments are not synchronizing correctly.
    Its showing appointment time differently in outlook 2007
    Can you please tell the settings need to check
    Advance thanks
    Chandra

    Okay...I did a little more Googling and found the answer:
    The root problem was with a corrupted or incompatible version of MAPI32.dll with the Blackberry Desktop Manager and Microsoft Outlook. Given the problem and the tools that Microsoft provides in Windows XP and Windows Vista, you can accomplish the fix in less than 5 minutes.
    Here are the steps...
    1. Optional (I did not follow and it worked): Exit out of both the Blackberry Desktop Manager and Microsoft Outlook clients. Make sure that in your task manager that the process Outlook.exe is not running.
    2. In the default Windows XP or Windows Vista installation go to the folder C:\Windows\System32. You can also get there by typing in %systemroot%\system32 into the Start --> Run prompt.
    3. In the System32 folder, find the file "MAPI32.dll" and rename it to "MAPI32.dll.old" or similar.
    4. In the System32 folder, there is another file called "FIXMAPI.EXE" that may just show as FIXMAPI depending on your configuration. Double-click it to execute the file, it will create a new version of MAPI32.dll.
    5. Verify the new file in your System32 folder. You may need to hit F5 to or go to View --> Refresh in order to show the newly created file.
    Now start up the Blackberry Desktop Manager and re-configure the synchronization feature. The error message Microsoft Outlook Connector Error - No available message stores should not longer be there!
    The complete article is at the following link: http://www.somelifeblog.com/2008/11/noavailablemessagestoresblackberrysyncf.html
    Thank you Mr. Ken Hanscom for figuring this out!!!!  Woo Hoo I am back in business.
    ~ mAC

  • CRM Pricing error after 5000 seconds with CRM_ORDER_MAINTAIN in background

    Hi,
    This is Rajender. I am using function module CRM_ORDER_MAINTAIN to create sales order. I am facing a error while creating sales order from text file. while uploading 15000 records it is taking more than 5000 seconds. But after 5000 seconds the background job gets cancelled raising the error "Error occurred when processing Java programs".
    Can anybody please tell me why the error is coming.
    I am using the following sequence to create sales order.
    CRM_ORDER_MAINTAIN - To create sales order header
    CRM_ORDER_MAINTAIN - To create Item - Product, quantity, partner, manual price.
    CRM_ORDER_SAVE
    CRM_ORDER_INITIALIZE
    Thanks & Regards,
    Rajender Naik.

    Hi Rajender,
    Try using the FM CRMXIF_ORDER_SAVE which is more of like an interface FM and its better to use this FM for interfaces/data loading. We had issues with using crm_order_maintain FM and had to replace with this one.
    Refer to this below link on how to use this FM for a specific scenario-
    http://www.divulgesap.com/blog.php?p=MTEy
    Hope it helps.
    Cheers,
    Ravikiran

  • CRM ORDER CHANGE / CRM_ORDER_MAINTAIN

    Hi Max.
    Firt of all, Let me thank you for taking the time and replying to my question. Thank you again.
    Now, Inyour reply, you said that it is a little tricky on how we fill in the BAPI structures, can you please explain how. I did try your advise with the sample code, but the order is still not changing. I am losing my mind here. I seriously need help. Here is my scenerio:
    I extended the table CRMD_PARTNER with two date fields (Date to and Date From). I could not add these two fields to the order->partner tab table control as columns, so I creared a custom screen that mimics the data from Partner tab with my additional date fields as 2 columns. These dates need to be maintained.
    So I tried to work with your sample code, populated my it_partner table with the record that I need to change, populated the LT_INPUT_FIELDS table with Object=partner, ref_kind=A, REF_GUID=MY_ORDER_GUID, LOGICAL_KEY=MY_LOGICAL_KEY and the field names are: DATE_FROM,DATE_TO,DISPLAY_TYPE, KIND_OF_ENTRY,NO_TYPE, PARTNER_NO. All fields are marked 'X' for changeable parameter. When I run my code, I get a subrc=0. when i look at the order in the system, i dont see my dates changed.
    I am attaching my code below. Can you please help me out. What am i doing wrong. What am I missing. I even tried to call the CRM_PARTNER_BADI from my custom screen but that did not work either. Do I need to call the FM:order_maintain along with the PARTNER_BADI? HELP PLEASE. THANKS.
    DATA:
    IT_PARTNER TYPE CRMT_PARTNER_COMT,
    IS_PARTNER TYPE CRMT_PARTNER_COM,
    CT_ORDERADM_H TYPE CRMT_ORDERADM_H_COMT,
    CS_ORDERADM_H TYPE CRMT_ORDERADM_H_COM,
    CT_INPUT_FIELDS TYPE CRMT_INPUT_FIELD_TAB,
    CS_INPUT_FIELDS TYPE CRMT_INPUT_FIELD,
    CT_FIELD_NAMES TYPE CRMT_INPUT_FIELD_NAMES_TAB,
    CS_FIELD_NAMES TYPE CRMT_INPUT_FIELD_NAMES,
    CS_INPUTFIELDS TYPE CRMT_INPUT_FIELD_NAMES.
    CS_ORDERADM_H-HANDLE = '0000000000'.
    CS_ORDERADM_H-GUID = '43FDCE7DBD600058020000000A4DA19F'.
    CS_ORDERADM_H-OBJECT_ID = '0005000243'.
    CS_ORDERADM_H-PROCESS_TYPE = 'ZBND'.
    CS_ORDERADM_H-MODE = 'B'. "A=CREATE, B=CHANGE, C=DISPLAY
    APPEND CS_ORDERADM_H TO CT_ORDERADM_H.
    CS_INPUT_FIELDS-REF_HANDLE = '0000000000'.
    CS_INPUT_FIELDS-REF_GUID = '43FDCE7DBD600058020000000A4DA19F'.
    CS_INPUT_FIELDS-REF_KIND = 'A'.
    CS_INPUT_FIELDS-OBJECTNAME = 'PARTNER'.
    CS_INPUT_FIELDS-logical_key = '0000000000011311 BPBP'.
    CS_INPUTFIELDS-FIELDNAME = 'DATE_FROM'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    CS_INPUTFIELDS-FIELDNAME = 'DATE_TO'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    CS_INPUTFIELDS-FIELDNAME = 'DISPLAY_TYPE'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    CS_INPUTFIELDS-FIELDNAME = 'KIND_OF_ENTRY'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    CS_INPUTFIELDS-FIELDNAME = 'NO_TYPE'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    CS_INPUTFIELDS-FIELDNAME = 'PARTNER_NO'.
    CS_INPUTFIELDS-CHANGEABLE = 'X'.
    APPEND CS_INPUTFIELDS TO CS_INPUT_FIELDS-FIELD_NAMES.
    APPEND CS_INPUT_FIELDS TO CT_INPUT_FIELDS.
    IS_PARTNER-REF_GUID = '43FDCE7DBD600058020000000A4DA19F'. "ORDER GUID
    IS_PARTNER-REF_KIND = 'A'.
    IS_PARTNER-REF_PARTNER_FCT = '00000001'.
    IS_PARTNER-REF_PARTNER_NO = '1311'.
    IS_PARTNER-REF_NO_TYPE = 'BP'.
    IS_PARTNER-REF_DISPLAY_TYPE = 'BP'.
    IS_PARTNER-PARTNER_GUID = '43FDCEEEBD600058020000000A4DA19F'.
    IS_PARTNER-KIND_OF_ENTRY = 'C'.
    IS_PARTNER-PARTNER_FCT = '00000001'.
    IS_PARTNER-PARTNER_NO = '1311'.
    IS_PARTNER-DATE_FROM = '20060627'.
    IS_PARTNER-DATE_TO = '20060627'.
    APPEND IS_PARTNER TO IT_PARTNER.
    To set maintain function to act like BAPI
    CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
    CALL FUNCTION 'CRM_ORDER_INITIALIZE'
    EXPORTING
    IV_INITIALIZE_WHOLE_BUFFER = 'X'.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
    EXPORTING
    IT_PARTNER = IT_PARTNER
    CHANGING
    CT_ORDERADM_H = CT_ORDERADM_H
    CT_INPUT_FIELDS = CT_INPUT_FIELDS.
    IF SY-SUBRC <> 0.
    ENDIF.
    *RESET
    CALL FUNCTION 'DIALOG_SET_WITH_DIALOG'.
    if sy-subrc ne 0. endif.
    clear s_new_order.
    read table t_new_orders
    into s_new_order
    INDEX 1.
    if sy-subrc = 0.
    l_object_to_save = CS_ORDERADM_H-GUID.
    INSERT l_object_to_save INTO TABLE t_object_to_save.
    CALL FUNCTION 'CRM_ORDER_SAVE'
    EXPORTING
    it_objects_to_save = t_object_to_save
    IMPORTING
    et_saved_objects = t_saved_objects
    et_exception = t_exceptions
    et_objects_not_saved = t_objects_not_saved
    EXCEPTIONS
    document_not_saved = 1
    OTHERS = 2.
    if sy-subrc eq 0.
    call function 'BAPI_TRANSACTION_COMMIT'.
    endif.
    COMMIT WORK.

    Hi Cool,
    Please compare the following code with your code :
    REPORT  yam_test_crmordermaintain               .
    DATA : lit_partner          TYPE crmt_partner_comt,
           wa_partner           LIKE LINE OF lit_partner,
           ls_input_field       TYPE crmt_input_field,
           ls_input_field_names TYPE crmt_input_field_names,
           lt_input_field_names TYPE crmt_input_field_names_tab,
           lt_input_fields      TYPE crmt_input_field_tab.
    DATA : lit_header_guid TYPE crmt_object_guid_tab,
           wa_header_guid  LIKE LINE OF lit_header_guid.
    * Populate the Input Field Structure
    CLEAR ls_input_field_names.
    ls_input_field_names-fieldname = 'PARTNER_FCT'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'PARTNER_NO'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'NO_TYPE'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field_names-fieldname = 'DISPLAY_TYPE'.
    INSERT ls_input_field_names INTO TABLE lt_input_field_names.
    ls_input_field-ref_guid    = '00000000000000000000000000000000'.
    ls_input_field-ref_kind    = 'A'.
    ls_input_field-objectname  = 'PARTNER'.
    ls_input_field-field_names = lt_input_field_names.
    INSERT ls_input_field INTO TABLE lt_input_fields.
    * Bill To Party
    MOVE: '00000000000000000000000000000000'  TO wa_partner-ref_guid,
         'A'        TO wa_partner-ref_kind,
         '0001'     TO wa_partner-ref_partner_handle,
         '00000003' TO wa_partner-partner_fct,
         '10000073' TO wa_partner-partner_no,
         'BP'       TO wa_partner-no_type,
         'BP'       TO wa_partner-display_type,
         'X'        TO wa_partner-mainpartner.
    APPEND wa_partner TO lit_partner.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
           EXPORTING
                it_partner = lit_partner
           CHANGING
                ct_input_fields = lt_input_fields
           EXCEPTIONS
                error_occurred = 1
                document_locked = 2
                no_change_allowed = 3
                no_authority = 4
                OTHERS = 5.
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Call CRM_ORDER_SAVE after the above statements and nothing else required.
    <b>Note: Instead of '00000000000000000000000000000000' give your HEADER GUID.</b>
    <b>See if it works, reward points if it helps.</b>

  • Changing Appointments in CRM

    Has anyone successfully updated dates on a CRM transaction using function BAPI_BUSPROCESSND_CHANGEMULTI?
    If so, would you mind posting some code, please?

    I am posting the code of my program, so maybe you can see what I am doing wrong:
    tables: crmd_orderadm_h.
    DATA: RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE.
    DATA: GUID TYPE TABLE OF BAPIBUS20001_GUID_DIS WITH HEADER LINE.
    DATA: APPOINTMENT TYPE TABLE OF BAPIBUS20001_APPOINTMENT_INS WITH HEADER LINE.
    DATA: INPUT_FIELDS TYPE TABLE OF BAPIBUS20001_INPUT_FIELDS WITH HEADER LINE.
    data: saved type TABLE OF BAPIBUS20001_OBJECT_ID with header line.
    Select header using doc number to get guid
    select single * from crmd_orderadm_h
    where object_id = '0050000172'.
    Guid from selected record
    guid-guid = crmd_orderadm_h-GUID.
    APPEND GUID.
    Update input fields
    INPUT_FIELDS-ref_guid = crmd_orderadm_h-guid.
    INPUT_FIELDS-ref_kind = 'A'.
    INPUT_FIELDS-objectname = 'APPOINTMENT'.
    Add individual fields
    INPUT_FIELDS-fieldname = 'REF_GUID'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'REF_KIND'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'REF_HANDLE'.
    append INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'APPT_TYPE'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'DATE_FROM'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'DATE_TO'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'MODE'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'TIMEZONE_FROM'.
    APPEND INPUT_FIELDS .
    INPUT_FIELDS-fieldname = 'TIMEZONE_TO'.
    APPEND INPUT_FIELDS .
    Update appointment - change to an exising record
    APPOINTMENT-ref_guid = crmd_orderadm_h-guid.
    APPOINTMENT-appt_type = 'CONTSIGNON'.
    APPOINTMENT-timezone_from = 'CET'.
    APPOINTMENT-timezone_to = 'CET'.
    APPOINTMENT-date_from = sy-datum.
    APPOINTMENT-time_from = sy-uzeit.
    APPOINTMENT-date_to = sy-datum.
    APPOINTMENT-time_to = sy-uzeit.
    APPOINTMENT-mode = 'B'. "<-- Appointment type already exists, so change
    APPEND APPOINTMENT.
    Update Document
    CALL FUNCTION 'BAPI_BUSPROCESSND_CHANGEMULTI'
      TABLES
        APPOINTMENT             = APPOINTMENT
        INPUT_FIELDS            = INPUT_FIELDS
        RETURN                  = return.
    Persist Changes
    CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'
      EXPORTING
        UPDATE_TASK_LOCAL = 'X'
      TABLES
        OBJECTS_TO_SAVE         = GUID
        SAVED_OBJECTS           = saved
        RETURN                  = RETURN.

  • Appointments Created in Calendar User Support CRM 6.0

    Hi All,
    We have 2 issues here. When I create a new appointment in the CRM calendar ;
    1)The appointment fails to show up in the Calendar User Support page. The Configs for the document type Header and partner functions have been maintained to allow calendar maintainance.
    What could be the problem here.
    2)Further the Calendar integration(groupware integration) with Outlook fails with an error - 'Synchronisation could not be executed due to error duirng data retrieval from CRM'
    I assume error 1) could be causing this. If not then could you also please let me know the answer to this...

    Hi,
    I guess this question should be better posted within the CRM 2007 forum. This forum here is for Web Channel deployments.
    Thanks
       Dominik

  • Issue with creation of sales order in CRM system

    Hi Experts,
    Here are the details of the process we followed
    1.     We found a Function Module u201CBAPI_BUSPROCESSND_CREATEMULTIu201D which is used to create a sales order in CRM.
    2.     We have set a Break point in the FM u201CCRM_ORDER_MAINTAINu201D and tried to create a sales order using the transaction u201CCRMD_ORDERu201D. For this the parameters we have given are
    a.     sold-to-party
    b.     ship-to-party
    c.     quantity
    d.     product
    And after this we have saved the order and the order is saved and in the debug mode we have the parameters in u201CCRM_ORDER_MAINTAINu201D and we found all these     parameters in the FM.
    3.     After this we have given all the parameters mentioned above in the FM u201CBAPI_BUSPROCESSND_CREATEMULTIu201D and still the order is not created, gave an error message saying that CRM_ORDER: Incorrect values in the interface object.
    4.     We checked the CRM_ORDER badiu2019s interface and it is having only header guid to be given. We gave this header guid also in the FM u201CBAPI_BUSPROCESSND_CREATEMULTIu201D and then it gave a different error saying that : Document cannot be saved.
    5.     Finally we are not able to know the parameters to be passed to the FM to create an order.
    Any inputs will be highly appreciated.
    Thanks a lot in advance.
    Lakshman.

    Hi Easwar,
    Now i am able to create a sales order by passing the parameters to "BAPI_BUSPROCESSND_CREATEMULTI" and the parameters i am passing are Process_type in the ORDERADM_H, parner_fct (partner function), partner_no , Quantity and prod_ordered (product name) but after creation of sales order using my report program and if i see the sales order uisng transaction crmd_order (using transaction ID) or crmd_orderadm_h(using headerguid) or crm_order_index, only the PROCESS_TYPE is updated but the remaining parameters which i passed like QUANTITY,PRODUCT NAME,PARTNER NUMBER are not present in the sales order. I am providing the code which i have written for creation of the sales order. Can you please look into it and tell me where i might have went wrong??
    *& Report  ZCREATEORDER_TEST
    REPORT  ZCREATEORDER_TEST.
    DATA : LV_HEADER_GUID  TYPE  GUID_32,
    WA_HEADER            TYPE         BAPIBUS20001_HEADER_INS,
    ITAB_HEADER          TYPE STANDARD TABLE OF BAPIBUS20001_HEADER_INS,
    ITAB_CREATED_PROCESS TYPE STANDARD TABLE OF BAPIBUS20001_HEADER_INS,
    ITAB_OBJECTS_TO_SAVE TYPE STANDARD TABLE OF BAPIBUS20001_GUID_DIS,
    ITAB_PARTNER        TYPE STANDARD TABLE OF BAPIBUS20001_PARTNER_INS,
    lt_product_i TYPE STANDARD TABLE OF BAPIBUS20001_ITEM,
    wa_product_i  type BAPIBUS20001_ITEM,
    lt_schedlin_i type standard table of BAPIBUS20001_SCHEDLIN,
    wa_schedlin_i type BAPIBUS20001_SCHEDLIN,
    ITAB_INPUT_FIELDS TYPE TABLE OF bapibus20001_input_fields,
    ls_inputfields TYPE bapibus20001_input_fields,
    WA_PARTNER          TYPE BAPIBUS20001_PARTNER_INS,
    ITAB_RETURN          TYPE STANDARD TABLE OF BAPIRET2,
    WA_OBJECTS_TO_SAVE  LIKE LINE OF ITAB_OBJECTS_TO_SAVE,
               "To store the Objects to be saved.
    WA_CREATED_PROCESS  LIKE LINE OF ITAB_CREATED_PROCESS,
    ITAB_SAVED_OBJECTS   TYPE STANDARD TABLE OF BAPIBUS20001_OBJECT_ID,
    WA_SAVED_OBJECTS    LIKE LINE OF ITAB_SAVED_OBJECTS,
    GC_X type c.
    gc_x = 'x'.
    CALL FUNCTION 'GUID_CREATE'
      IMPORTING
        ev_guid_32 = lv_header_guid.
    CLEAR : WA_HEADER.
    Passing the respective values from the Header table to internal table.
    WA_HEADER-GUID          =  LV_HEADER_GUID.
    WA_HEADER-PROCESS_TYPE  =  'ZTA'.
    APPEND WA_HEADER TO ITAB_HEADER.
    *Appending the values to the ITAB_HEADER.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'ORDERADM_H'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'PROCESS_TYPE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    *ls_inputfields-ref_handle = '0000000000'.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-objectname = 'ORDERADM_H'.
      ls_inputfields-fieldname = 'MODE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'ORDERADM_H'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'GUID'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CHANGES MADE
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'SCHEDLIN'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'LOGICAL_KEY'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'SCHEDLIN'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'MODE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'SCHEDLIN_I'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'GUID'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
       ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'SCHEDLIN_I'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'QUANTITY'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
       ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'SCHEDLIN_I'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'MODE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CHANGES MADE
    WA_PARTNER-REF_GUID = LV_HEADER_GUID.
    WA_PARTNER-REF_KIND = 'A'.
    giving the partner function and partner no 000000038 for slod to party
    WA_PARTNER-PARTNER_FCT = '00000038'.
    WA_PARTNER-PARTNER_NO = '10017'.
    APPEND WA_PARTNER TO ITAB_PARTNER.
    *"ADDING VALUES for the product
      wa_product_i-header        = lv_header_guid.
      wa_product_i-handle        = '0000000001'.
      wa_product_i-ordered_prod  = '12000014'.
      wa_product_i-mode          = 'A'.
      APPEND wa_product_i TO lt_product_i.
    *"ADDING VALUES for quantity
      wa_schedlin_i-quantity   = 30.
      wa_schedlin_i-handle = 1.
      APPEND wa_schedlin_i TO lt_schedlin_i.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    *ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'REF_GUID'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'PARTNER_FCT'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'PARTNER_NO'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CALL FUNCTION 'BAPI_BUSPROCESSND_CREATEMULTI'
      TABLES
        HEADER          = ITAB_HEADER
        ITEM            = lt_product_i
        RETURN          = ITAB_RETURN
        PARTNER         = ITAB_PARTNER
        INPUT_FIELDS    = ITAB_INPUT_FIELDS
        CREATED_PROCESS = itab_created_process
        SCHEDULELINE    = lt_schedlin_i.
    READ TABLE ITAB_CREATED_PROCESS INTO WA_CREATED_PROCESS WITH KEY GUID = LV_HEADER_GUID BINARY SEARCH.
    WA_OBJECTS_TO_SAVE-GUID = WA_CREATED_PROCESS-GUID.
    Appending the Guid of the contract to be saved to the internal table
    APPEND WA_OBJECTS_TO_SAVE TO ITAB_OBJECTS_TO_SAVE.
    CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'
      EXPORTING
        update_task_local = space
        save_frame_log    = GC_X
      TABLES
        objects_to_save   = itab_objects_to_save
        saved_objects     = itab_saved_objects
        return            = itab_return.
    Calling the Standard BAPI to Commit the transcation.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    I have debugged the above code, all the values are passing are passing to the FM "'BAPI_BUSPROCESSND_CREATEMULTI'" and these passed to the CRM_ORDER_MAINTAIN and then to CRM_ORDER_READ which are called inside the "'BAPI_BUSPROCESSND_CREATEMULTI'". Finally the sales order is created but not able to see all the values that i am passing except PROCESS_TYPE.
    Thanks a lot in Advance,
    Lakshman.

Maybe you are looking for