Automation of service ticket creation using RFC
Hello Friends,
Here is our new requirement.
In general, in HR team , a manager / employee will perform an action that triggers a workflow in ECC. Then they will call an agent in CRM to raise a service ticket for that. Our requirement is to automate this generation of service ticket when the manager/employee performs an action. But sometimes CRM system will be down. so at that time we need to save the data and create the service ticket when the system becomes active.
Approach:
The workflow will have a method(custom enhancement) that updates a custom table in ECC.
We(CRM) have to develop a RFC function module to read the data from ECC and update it in the custom table of CRM.
we have to create a program to loop the data from custom table and create a service order/ticket by using a function module.
As of now the process looked good.
1. But we don't see any link between the record in the custom table and service ticket generated. we cannot compare the service ticket and from which record it generated?
2. After using RFC we read the data into CRM custom table. How do we compare both the tables and delete the ECC table as soon as the CRM tables is updated?
3. when the service ticket failed to generate we should update the field in the custom table (CRM), the number of failures
Please help me .....Suggest me if there are any other approaches?
For question 1 look at the attachments in oss note 940882 Frequently Asked Questions about ERMS
a mailform can be used but is not required.
For question #2, John Burton wrote an article in CRM expert a few years back that explains this concept well. The email coming into the agent inbox doesn't create the ticket until processed but his article explains how it can and give and auto repsonse to the sender with the ticket number attached.
Similar Messages
-
Inbound for Service ticket creation
Dear all,
An inbound FM being triggered for Service ticket creation which those info are coming from legacy system.
My requirement is, at the end of the inbound processing, i need to send back the newly created SAP ticket number back to legacy.
I found that during the Inbound FM execution, it just hold a new GUID where the actual ticket number has not been determined/populated yet (i noticed, actual SAP ticket number will only be populated after the execution of Inbound FM). For this case, i can not get the new SAP ticket number send back to legacy during the Inbound processing.
Do you have any ideas on how can i get the newly created SAP ticket number during the Inbound FM execution?
Your comments are highly appreaciated.
Thanks in advance.cud u plz tell me function module ur using for inbound process for creating service ticket..
thanks in advance .. -
How to fill appointment details during service ticket creation?
Hi experts,
I have a requirement wherein I need to populate a specific appointment type details i.e. <b>APPT_TYPE</b>(ex:ZCREATE, TICKET_CREATE..etc) for a service ticket when the <b>service ticket</b> is being <b>created.</b>
Although it can be done by CRM configuration, I want to do it through ABAP only.
Service tickets are being created in <b>ICWebClient</b>.
<b>Reward points assured for helpful answers.</b>
Regards,
Amit
Message was edited by:
Amit KumarHi,
To achieve this, create an action in which you will place your code that is only triggerred once (you will need to decide what is the start condition for this new action)
It will need to do 2 things to set the information you want:
<i>1. Use function module CRM_ORDER_MAINTAIN to set the appointment data
2. Call method REGISTER_FOR_SAVE in class CL_ACTION_EXECUTE to ensure the new information is saved onto the service ticket.</i>
I have done this with other information setting on the service ticket during creation and it works fine.
Why are you not using config to do this ? Is it a special calculation for the date that is not catered for in configuration ??
Cheers
Colin. -
Service Ticket: Search using Inbox & My Worklist in IC WebClient
Dear Gurus,
When I create a Service Ticket in the IC WebClient in CRM 5.0 and save it, the system generates a Transaction Number which I can then search for by using Interaction History, Inbox and My Worklist.
When I search using Interaction History, I select the relevant Service Ticket and the system takes me to an Interaction Record, and from there I can navigate to the correct Service Ticket.
When I search using Inbox, the system takes me to a Service Order, which I do not believe is correct.
When I search using My Worklist, the system also takes me to a Service Order, which I do not believe is correct.
Any recommendations?
Rgs,
AlanHi
You can search service ticket from inbox ideally by entering the object ID in the agent inbox or you can also search for service tickets in interaction record which is an activity transaction type if you maintain the copy control for service ticket from interaction record then you can search for service ticket through the interaction record as well.
refer to best practice link for the service ticket custimiseing settings for icwebelient
http://help.sap.com/bp_crmv250/CRM_DE/index.htm
Reward points if helpful
Regards
Dinaker vikas -
Listening to Service ticket creation event
Hi,
I have a requirement to check the ticket details and populate one field as per the ticket details. This operation has to be done on the below scenario.
u2022 A service ticket is generated and already has a property confirmed
u2022 A property(iObject) is confirmed for a new service ticket
u2022 The property(iObject) is changed on the service ticket
u2022 The service ticket is saved .
We can handle the scenario 2 and 3 from UI. But I do not know how to handle the scenario 1 i.e. whenever a service ticket is generated. Is there an event which gets raised whenever a service ticket is generated ?
For scenario 4, I am planning to invoke the required operation in the save button code which is available in UI. But when agent ends call, then also the service order gets saved. Is there a way I can invoke my code just before save ?
Regards,
Manas.
Edited by: manas sahoo on Aug 6, 2008 9:44 AMHello Manas,
Check if this suggestions may help you.
For scenario 1, you can check method IP_INBOUNDPLUG of your service ticket controller class. Maybe there you'll understand if a new bol entity for the service ticket was created or not.
For scenario 4, you can use ORDER_SAVE badi. This BADI was 3 methods to manipulate a document before you saving it. See it to check if any of those three can help you.
Kind regards.
Bruno -
Service ticket creation through web request
Hello,
I just need to know if there is any standard CRM functionality to serve the form and to create the service ticket ?
Regards
SachinHi Gagan
Could you please share with your solution, i am kind looking help in same are. We are using CRM 7.0, but i can not find BOL component which is ISUSRV.
My requirement is to create Service Order from Webclient, example meter problem reporting, etc
Please kindly reply or by email shankar no dot vangari at gmail com
regards
shankar -
Service PO creation Using BAPI_PO_CREATE1
Hi Friends,
Can any body tell me how to create a service PO based on the existing service Agreement by using BAPI_PO_CREATE1 with sample code.
Thanks,
KamleshHi Friends,
Can any body tell me how to create a service PO based on the existing service Agreement by using BAPI_PO_CREATE1 with sample code.
Thanks,
Kamlesh -
Sales order creation using rfc
hi
can any one tell me how to create sales order using RFC .
what is the function module we have to use .
Moderator message: please do some research before asking.
Edited by: Thomas Zloch on Mar 17, 2011 1:21 PMMist first line was :-)
The customer numbers must be in table parameter SALES_PARTNERS.
Try [SALES_PARTNERS-PARTN_ROLE|http://www.sdn.sap.com/irj/scn/advancedsearch?query=sales_partners+partn_role] = 'WE', 'SP' etc.
Regards,
Raymond -
hi,
I want to use RFC FM for creating the vendor. So far i have used VENDOR_INSERT, but it doesnt updates ADRC table(I think so) so is there any alternate FM apart from BAPI_VENDOR_CREATE(coz it need data to be filled online).
Please suggest any FM which satisfies the above need.
Regards,Hi,
Not sure about a RFC other than BAPI_VENDOR_CREATE..
can you use batch input program RFBIKR00
Thanks
Naren -
Service order creation using bapi with repair order number
Hi experts,
Pls suggest me a BAPI to create a service order for those repair orders where a PGR has been done(for return delivery type : LR).
The plant should be 0260 with storage location wh01 and item category ZRRE
Creation of a service order with repair order type SM03 is not allowed in iw31.
thanks and regards,
Vijayb.Hi prakash,
Thank u for the BAPI
But an error is being displayed saying that the REFURBISHMENT ORDERS CANNOT BE PROCESSED USING BAPI.
ERROR DURING PROCESSING OF BAPI METHODS.
This is while u pass the order type as either ZM03 or SM01or SM02 or SM03.
pls help me on that.
thanks and regards,
Vijayb. -
Issue in DBM service order creation through RFC
hi everyone,
I am using the RFC '/DBM/ORD_RFC_CREATE' to create the service order. I have executed in test run in SE37. The Serice Order is not getting created. I am getting message in return table that 'ordertype is not in table '/DBM/C_ORDERTP'.
Thanks in advance!!Hi Balaji,
Check your order type is present in table /DBM/C_ORDERTP or not? if your order type is custom order type that need to be configured by functional peaple. so it will be there in table /DBM/C_ORDERTP.
Regards,
Lokesh -
Plant maintanance service order creation using Sales order
Hi,
We have created plant maintanance service orders using requiremnt class in sales . so in sales order schedule line the service order is created. but in some sales orders it will show the service order number and when we double click on that shows an error service order does not exist. please let us know what would be the problem.
Thanks & regards,
RohitHi ROHIT,
First check do you have authorization for (IW32 , IW33) and Check your number ranges in OION and check is there any status is blocking that number.
Regards
Nishad -
Additional Qty calculation during Ticket creation using function modules
HI,
I am trying to create and actualize ticket using FMs in following seuence:
1) OIJB_TICKET_DEFAULTING
2) OIJ_EL_A_TICKETS_MAINTAIN_N
3) OIJB_GENERATE_DOCUMENTS_N
I am passing OIJ_EL_TKT_I_O1 details to FM OIJB_TICKET_DEFAULTING.
Requiement is based on OIJ_EL_TKT_I_O1, it should calculate additional quantities OIJ_EL_TKT_I_O2.
But it seems it is not populating OIJ_EL_TKT_I_O2.
Any Idea why FM does not calculate OIJ_EL_TKT_I_O2? Or do we need to calculate externally and then Pass it to FM? Which FM does this?
Thanks & Regards,
UmeshHi Umesh,
The function module OIJB_TICKET_DEFAULTING should do the conversion based on the parameters you pass via OIJ_EL_TKT_I_O1.
It will do this only if the parameter ET_TICKET_ITEM_O2 is requested.
Check if you are properly passing an internal table in this field.
Best Regards
Vishnu -
How to Navigate from Confirm Account to Creation of Service Ticket
Dear Expert,
My client does not want to create a interaction record after account confirmation. They want to go directly to Service Ticket creation.
I am using CRM 6.0 SP05.
Could you guide me through the steps for that?
Which customizing steps need to be done?
Thank you very much in advance.
Best reagrds
Ahmed Hadi
Edited by: Ahmed Hadi on Dec 15, 2009 2:43 PM
Edited by: Ahmed Hadi on Dec 15, 2009 2:44 PMHello Ahmed,
I discuss the pros and cons of this strategy a bit in my book, "Mazimizing Your SAP CRM Interaction Center", but you can also find the basic info in this blog, "[Everything you need to know about the Interaction Record in the CRM Interaction Center|/people/gert.tackaert/blog/2008/09/04/everything-you-need-to-know-about-the-interaction-record-in-the-crm-interaction-center]".
There is a BADI (CRM_IC_IARECORD) that can be used to suppress the creation of the Interaction Record. SAP does not recommend to actually supress the creation of the Interaction Record (as it is needed for various out of the box reporting and analytics options, as well as for maintaining object links and other features). Rather, you might want to simply use Intent-Driven Interaction with the Rule Modeler to automatically navigate to the Service Ticket screen after some UI event like BP confirm or IBase confirm (or whatever other even you want). If necessary you could also remove IR link for the NavBar.
Best regards,
John -
TSW-Ticket Creation & Actualization using BDC
Hi,
I am using BDC for Ticket creation using transaction O4TEN.
After execution of this BDC, Ticket get created and Saved but it does not actualize ticket even if we click actualize button using BDC.
In real scenario, after ticket creation the status and substatus values should be "C"(Planned) and "6" (Complete) but in this case the status and substatus values are "B"(Checked) and "4"(Positive).
If we create ticket directly using O4TEN then it actualizes ticket properly.
I am not able to find out why BDC is not actualizing tickets.
Any idea?
Regards,
UmeshHi,
I tried BDC for SAVE but still not getting Ticket Key.
So now I am using FM: OIJ_EL_A_TICKETS_MAINTAIN_N.
It creates ticket but in Ticket Item table Ticket item field is blank. Purpose is blank.
Also OIJ_EL_TKT_I_O1 and OIJ_EL_TKT_I_O2 are not populated.
In header I am passing: TICKET_PURPOSE, TICKET_TYPE, UPDKZ = 'I'
and In item I am passing: NOMNR, NOMTK, NOMIT, MENGE, MEINS, TIME_ST_LOAD_STA, TIME_ST_LOAD_END, BUDAT UPDKZ = 'I'.
am I missing something?
Code is as follows:
Replace BDC with function module: OIJ_EL_A_TICKETS_MAINTAIN_N
1) Call FM: OIJ_EL_A_TICKETS_MAINTAIN_N
2) Call FM: ENQUEUE_E_OIJTKT
3) Call FM: OIJB_GENERATE_DOCUMENTS_N
4) Call FM: DEQUEUE_E_OIJTKT
DATA: ls_tkt_h TYPE roij_el_ticket_hvb,
ls_tkt_i TYPE roij_el_ticket_i_io,
ls_oijnomi TYPE oijnomi,
ls_roijnomiio TYPE roijnomiio,
ls_ticket_item TYPE oij_el_ticket_i,
ls_ticket_item_o1 TYPE oij_el_tkt_i_o1,
ls_ticket_item_o2 TYPE oij_el_tkt_i_o2,
ls_ticket_header_pv TYPE oij_el_ticket_h,
ls_ticket_header TYPE oij_el_ticket_h,
ls_tkt_i_o1 TYPE oij_el_tkt_i_o1,
ls_tkt_i_o2 TYPE oij_el_tkt_i_o2.
DATA: lv_time TYPE sy-uzeit.
DATA: it_tkt_i TYPE roij_el_ticket_i_io_t,
it_tkt_h_evt TYPE roijte_t,
it_tkt_h_evt_txt TYPE oij_txt,
it_tkt_i_evt TYPE roijte_t,
it_tkt_i_evt_txt TYPE oij_txt,
it_tkt_i_o1 TYPE roij_el_tkt_i_o1_t,
it_tkt_i_o2 TYPE roij_el_tkt_i_o2_t,
it_tkt_err_log TYPE oij_el_err_log_tt,
it_tkt_doc_flow TYPE roij_el_doc_flow_io_t,
it_return TYPE bapiret2_t,
it_oijnomh TYPE oijnomh_t,
it_oijnomi TYPE oijnomi_t,
it_ticket_item TYPE STANDARD TABLE OF oij_el_ticket_i,
it_ticket_item_o1 TYPE STANDARD TABLE OF oij_el_tkt_i_o1,
it_ticket_item_o2 TYPE STANDARD TABLE OF oij_el_tkt_i_o2.
ls_tkt_h-ticket_purpose = '1'.
ls_tkt_h-ticket_type = lv_ticket_type.
IF lv_ticket_type EQ c_yp2.
If Ticket type is YP2 then
ls_tkt_h-yy_mct_cat = fp_mct_cat.
ENDIF.
ls_tkt_h-yy_pat_alc = lv_alloc_rule.
ls_tkt_h-updkz = 'I'.
ls_tkt_i-nomnr = fp_s_tc1-nomnr.
ls_tkt_i-nomtk = fp_s_tc1-nomtk.
ls_tkt_i-nomit = fp_s_tc1-nomit.
ls_tkt_i-menge = lv_menge.
ls_tkt_i-meins = fp_s_tc1-units.
CLEAR ls_oijnomi.
SELECT SINGLE * FROM oijnomi INTO ls_oijnomi
WHERE nomtk = fp_s_tc1-nomtk
AND nomit = fp_s_tc1-nomit.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING ls_oijnomi TO ls_roijnomiio.
ENDIF.
PERFORM get_timestamp USING fp_sdate
lv_time
ls_roijnomiio
CHANGING ls_tkt_i-time_st_load_sta.
PERFORM get_timestamp USING fp_edate
lv_time
ls_roijnomiio
CHANGING ls_tkt_i-time_st_load_end.
CONCATENATE lv_budat(4) lv_budat5(2) lv_budat8(2) INTO ls_tkt_i-budat.
ls_tkt_i-updkz = 'I'.
APPEND ls_tkt_i TO it_tkt_i.
CALL FUNCTION 'OIJ_EL_A_TICKETS_MAINTAIN_N'
EXPORTING
is_tkt_header = ls_tkt_h
IT_HEADER_EVT =
IT_HEADER_EVT_TXT =
it_items = it_tkt_i
IT_ITM_EVT =
IT_ITM_EVT_TXT =
IT_ITM_O1 =
IT_ITM_O2 =
IT_TKT_ERROR_LOG =
it_tkt_doc_flow = it_tkt_doc_flow
iv_commit = 'X'
IV_LOCK =
IV_ADD_TO_LOG =
IV_CALL_TO_OUTPUT =
IMPORTING
es_tkt_header = ls_tkt_h
ET_HEADER_EVT = it_tkt_h_evt
ET_HEADER_EVT_TXT = it_tkt_h_evt_txt
et_items = it_tkt_i
ET_ITM_EVT = it_tkt_i_evt
ET_ITM_EVT_TXT = it_tkt_i_evt_txt
et_itm_o1 = it_tkt_i_o1
et_itm_o2 = it_tkt_i_o2
ET_TKT_ERROR_LOG = it_tkt_err_log
et_tkt_doc_flow = it_tkt_doc_flow
et_return = it_return
EXCEPTIONS
ticket_locked = 1
OTHERS = 2
IF sy-subrc NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
COMMIT WORK AND WAIT.
Lock the ticket
There is no check neccessary if the ticket has already
been locked by an other user because it has just been
created.
CALL FUNCTION 'ENQUEUE_E_OIJTKT'
EXPORTING
mode_oij_el_ticket_h = 'E'
mandt = sy-mandt
ticket_key = ls_tkt_h-ticket_key
ticket_version = ls_tkt_h-ticket_version
ticket_purpose = ls_tkt_h-ticket_purpose
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
CALL FUNCTION 'OIJB_GET_NOMINATION_DATA'
EXPORTING
ACTIVITY =
is_ticket_header = ls_tkt_h
is_ticket_item = ls_tkt_i
IV_ADD_TO_LOG =
CHANGING
ct_oijnomh = it_oijnomh
ct_oijnomi = it_oijnomi
RETURN =
EXCEPTIONS
ticket_data_error = 1
no_nomination_selected = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ls_ticket_header = ls_tkt_h.
LOOP AT it_tkt_i INTO ls_tkt_i.
MOVE-CORRESPONDING ls_tkt_i TO ls_ticket_item.
APPEND ls_ticket_item TO it_ticket_item.
ENDLOOP.
LOOP AT it_tkt_i_o1 INTO ls_tkt_i_o1.
MOVE-CORRESPONDING ls_tkt_i_o1 TO ls_ticket_item_o1.
APPEND ls_ticket_item_o1 TO it_ticket_item_o1.
ENDLOOP.
LOOP AT it_tkt_i_o2 INTO ls_tkt_i_o2.
MOVE-CORRESPONDING ls_tkt_i_o2 TO ls_ticket_item_o2.
APPEND ls_ticket_item_o2 TO it_ticket_item_o2.
ENDLOOP.
CALL FUNCTION 'OIJB_GENERATE_DOCUMENTS_N'
EXPORTING
i_ticket_header = ls_ticket_header
i_ticket_header_pv = ls_ticket_header_pv
I_CLOSE_SHIPMENT = ' '
TABLES
t_ticket_item = it_ticket_item
t_ticket_item_o1 = it_ticket_item_o1
t_ticket_item_o2 = it_ticket_item_o2
T_TICKET_ITEM_PV =
T_TICKET_ITEM_O1_PV =
T_TICKET_ITEM_O2_PV =
t_oijnomh = it_oijnomh
t_oijnomi = it_oijnomi
T_DOC_FLOW =
T_ERR_LOG =
T_REVERSAL_DOCS =
T_ORIGINAL_DOCS =
T_TICKET_SUBITEM =
EXCEPTIONS
error_during_cip_process = 1
error_during_checks = 2
nomination_lock_error = 3
nomination_read_error = 4
cip_process_read_error = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
COMMIT WORK AND WAIT.
ENDIF.
Maybe you are looking for
-
My iphone 4S doesn't sync my photos in itunes
please help... my iphone 4S used to sync my photos in my pc thru itunes but about a month ago... it doesn't sync my photos anymore... i've been searching online for solutions & how can i resolve this problem... please help... thank you in advance
-
ITunes could not sync "notes" to iPhone 4 because iPhone canceled the sync?
My iPhone 4 arrived and it activated fine and the setup / sync with iTunes went fine, except with NOTES within Mac Mail -- I keep receiving the following error message via iTunes QUOTE: iTunes could not sync notes to the iPhone " _____ iPhone" becaus
-
GroupWise recent sent items do not show in sent folder
On GroupWise Whenever I check my sent items folder I am only able to see messages from 2004. I am only able to see my recent sent items from GroupWise Remote. Whenever I am connected locally I can never see my recently sent messages. Any help is appr
-
Session bean "Exception in method create()"
Hello, I have a session bean which is consuming entity bean and session bean is published as webService now when I call create method of entity bean from session bean it says "Exception in method com.syntel.exam_tool.entityBeans.tabExamTable.TabExamL
-
Process related to S1 Portal Server
Hi, Can you please help me in identifying all the processes (solaris 8 and S1 Portal Server 6.1) which runs when I start the S1 Portal Server. I want to calculate the CPU & Memory Utilization of the S1 Portal Server(only S1 Portal Server not related