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_fieldsHello 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.
/HasanAbsolutely 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 -
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 PetersonThis 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.
MarcoChecked 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
ChandraOkay...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> -
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
-
How to change default compatibility level
How can one change the default setting for Compatibility, under Password Security - Setting. Default in Acrobat 8 is "Acrobat 5.0 and later". I would like to change this to "Acrobat 7.0 and later".
-
8.3 filenames on classpath under Windows XP
Hi, I have an application where the classpath may include paths with unicode characters. Since there is no obvious way to pass such paths to the JVM at startup, I have tried to convert the paths to the short (8.3) format prior to passing them to the
-
I need to make my marching ants brighter
It seems like all of a sudden my marching ants are dim to nearly invisible as I'm making a selection. I haven't updated my software. They show up in some graphics better than others, and once I've made the selection, they show up white again. Example
-
Can I manually add songs to icloud match? I currently have room for 1500 songs but my library has 35000 total songs. Can I manually select the new songs to be added?
-
Email address problem when writing an email
Recently I update my OS to the v5.0. I like it very much, but since that. I have a problem when I redacting a new email. When I want to add the destinatary the BB doesn't search for any address on the device... I have to copy-paste the address, then