2015 Aug 14 9:04 AM
Dear All,
I want to create DBM service order with reference to service quotation in a customise program. (By using copy order functionality) Can you suggest right function module?
I have tried FM - /DBM/ORD_INT_CREATE but it is not working for copy order.
Thanks and Regards,
- Makarand
2015 Aug 14 9:47 AM
Dear Makarand Sir,
Below code will work, may need some correction for you.
PERFORM copy_rental_order USING l_aufart p_vbeln. " L_aufart is tager service order type
FORM copy_rental_order USING p_aufart TYPE /dbm/aufart_s
p_vbeln TYPE /dbm/vbak_db-vbeln.
DATA is_vbak_rfc TYPE /dbm/vbak_com_rfc.
*DATA IV_TESTRUN TYPE TESTRUN.
DATA ev_vbeln TYPE /dbm/vbeln_va.
DATA es_vbak_rfc TYPE /dbm/vbak_com_rfc.
DATA et_job_rfc TYPE STANDARD TABLE OF /dbm/job_com_rfc.
DATA et_task_rfc TYPE STANDARD TABLE OF /dbm/task_com_rfc.
DATA et_tasksch_rfc TYPE STANDARD TABLE OF /dbm/tasksch_com_rfc.
DATA et_vbap_rfc TYPE STANDARD TABLE OF /dbm/vbap_com_rfc.
DATA es_vbap_rfc TYPE /dbm/vbap_com_rfc.
DATA et_vbep_rfc TYPE STANDARD TABLE OF /dbm/vbep_com_rfc.
DATA et_splhdr_rfc TYPE STANDARD TABLE OF /dbm/splhdr_com_rfc.
DATA et_split_rfc TYPE STANDARD TABLE OF /dbm/split_com_rfc.
DATA et_vbpa_rfc TYPE STANDARD TABLE OF /dbm/vbpa_com_rfc.
DATA et_ltext_rfc TYPE STANDARD TABLE OF /dbm/lt_ltext_rfc.
DATA et_extension_out TYPE STANDARD TABLE OF bapiparex.
DATA et_return TYPE STANDARD TABLE OF bapiret2.
DATA: l_tabix TYPE sy-tabix.
CALL FUNCTION '/DBM/ORD_RFC_GETDETAIL'
EXPORTING
iv_vbeln = p_vbeln
IMPORTING
es_vbak_rfc = es_vbak_rfc
TABLES
et_job_rfc = et_job_rfc
et_task_rfc = et_task_rfc
et_tasksch_rfc = et_tasksch_rfc
et_vbap_rfc = et_vbap_rfc
et_vbep_rfc = et_vbep_rfc
et_splhdr_rfc = et_splhdr_rfc
et_split_rfc = et_split_rfc
et_vbpa_rfc = et_vbpa_rfc
et_ltext_rfc = et_ltext_rfc
et_extension_out = et_extension_out
et_return = et_return.
CHECK et_vbap_rfc[] IS NOT INITIAL.
es_vbak_rfc-aufart = p_aufart.
CLEAR: es_vbak_rfc-vbeln,
"es_vbak_rfc-engine,
es_vbak_rfc-h_netwr,
es_vbak_rfc-knumv,
es_vbak_rfc-h_knumv,
es_vbak_rfc-erdat_tmstp,
es_vbak_rfc-vbelv,
et_job_rfc[],
et_task_rfc[],
et_tasksch_rfc[],
et_splhdr_rfc[],
et_ltext_rfc[],
l_tabix.
* LOOP AT et_vbap_rfc INTO es_vbap_rfc .
* l_tabix = sy-tabix.
* MODIFY et_vbap_rfc FROM es_vbap_rfc INDEX l_tabix.
* ENDLOOP.
LOOP AT et_vbap_rfc INTO es_vbap_rfc.
l_tabix = sy-tabix.
CLEAR: es_vbap_rfc-vbeln.
es_vbap_rfc-aufart = p_aufart.
MODIFY et_vbap_rfc FROM es_vbap_rfc INDEX l_tabix.
ENDLOOP.
CLEAR ev_vbeln.
CALL FUNCTION '/DBM/ORD_RFC_CREATE'
EXPORTING
is_vbak_rfc = es_vbak_rfc
* IV_TESTRUN = ' '
IMPORTING
ev_vbeln = ev_vbeln
TABLES
it_job_rfc = et_job_rfc
it_task_rfc = et_task_rfc
it_tasksch_rfc = et_tasksch_rfc
it_vbap_rfc = et_vbap_rfc
it_splhdr_rfc = et_splhdr_rfc
it_ltext_rfc = et_ltext_rfc
* IT_EXTENSION_IN = IT_EXTENSION_IN
et_return = et_return.
IF ev_vbeln IS NOT INITIAL.
COMMIT WORK AND WAIT.
SET PARAMETER ID '/DBM/ORDER_NUMBER' FIELD ev_vbeln.
CALL TRANSACTION '/DBM/ORDER02' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE 'Unable to create rental order/quotation contact IT' TYPE 'I'.
ENDIF.
ENDFORM. " CREAT_RENTAL_ORDER
2015 Aug 14 9:47 AM
Dear Makarand Sir,
Below code will work, may need some correction for you.
PERFORM copy_rental_order USING l_aufart p_vbeln. " L_aufart is tager service order type
FORM copy_rental_order USING p_aufart TYPE /dbm/aufart_s
p_vbeln TYPE /dbm/vbak_db-vbeln.
DATA is_vbak_rfc TYPE /dbm/vbak_com_rfc.
*DATA IV_TESTRUN TYPE TESTRUN.
DATA ev_vbeln TYPE /dbm/vbeln_va.
DATA es_vbak_rfc TYPE /dbm/vbak_com_rfc.
DATA et_job_rfc TYPE STANDARD TABLE OF /dbm/job_com_rfc.
DATA et_task_rfc TYPE STANDARD TABLE OF /dbm/task_com_rfc.
DATA et_tasksch_rfc TYPE STANDARD TABLE OF /dbm/tasksch_com_rfc.
DATA et_vbap_rfc TYPE STANDARD TABLE OF /dbm/vbap_com_rfc.
DATA es_vbap_rfc TYPE /dbm/vbap_com_rfc.
DATA et_vbep_rfc TYPE STANDARD TABLE OF /dbm/vbep_com_rfc.
DATA et_splhdr_rfc TYPE STANDARD TABLE OF /dbm/splhdr_com_rfc.
DATA et_split_rfc TYPE STANDARD TABLE OF /dbm/split_com_rfc.
DATA et_vbpa_rfc TYPE STANDARD TABLE OF /dbm/vbpa_com_rfc.
DATA et_ltext_rfc TYPE STANDARD TABLE OF /dbm/lt_ltext_rfc.
DATA et_extension_out TYPE STANDARD TABLE OF bapiparex.
DATA et_return TYPE STANDARD TABLE OF bapiret2.
DATA: l_tabix TYPE sy-tabix.
CALL FUNCTION '/DBM/ORD_RFC_GETDETAIL'
EXPORTING
iv_vbeln = p_vbeln
IMPORTING
es_vbak_rfc = es_vbak_rfc
TABLES
et_job_rfc = et_job_rfc
et_task_rfc = et_task_rfc
et_tasksch_rfc = et_tasksch_rfc
et_vbap_rfc = et_vbap_rfc
et_vbep_rfc = et_vbep_rfc
et_splhdr_rfc = et_splhdr_rfc
et_split_rfc = et_split_rfc
et_vbpa_rfc = et_vbpa_rfc
et_ltext_rfc = et_ltext_rfc
et_extension_out = et_extension_out
et_return = et_return.
CHECK et_vbap_rfc[] IS NOT INITIAL.
es_vbak_rfc-aufart = p_aufart.
CLEAR: es_vbak_rfc-vbeln,
"es_vbak_rfc-engine,
es_vbak_rfc-h_netwr,
es_vbak_rfc-knumv,
es_vbak_rfc-h_knumv,
es_vbak_rfc-erdat_tmstp,
es_vbak_rfc-vbelv,
et_job_rfc[],
et_task_rfc[],
et_tasksch_rfc[],
et_splhdr_rfc[],
et_ltext_rfc[],
l_tabix.
* LOOP AT et_vbap_rfc INTO es_vbap_rfc .
* l_tabix = sy-tabix.
* MODIFY et_vbap_rfc FROM es_vbap_rfc INDEX l_tabix.
* ENDLOOP.
LOOP AT et_vbap_rfc INTO es_vbap_rfc.
l_tabix = sy-tabix.
CLEAR: es_vbap_rfc-vbeln.
es_vbap_rfc-aufart = p_aufart.
MODIFY et_vbap_rfc FROM es_vbap_rfc INDEX l_tabix.
ENDLOOP.
CLEAR ev_vbeln.
CALL FUNCTION '/DBM/ORD_RFC_CREATE'
EXPORTING
is_vbak_rfc = es_vbak_rfc
* IV_TESTRUN = ' '
IMPORTING
ev_vbeln = ev_vbeln
TABLES
it_job_rfc = et_job_rfc
it_task_rfc = et_task_rfc
it_tasksch_rfc = et_tasksch_rfc
it_vbap_rfc = et_vbap_rfc
it_splhdr_rfc = et_splhdr_rfc
it_ltext_rfc = et_ltext_rfc
* IT_EXTENSION_IN = IT_EXTENSION_IN
et_return = et_return.
IF ev_vbeln IS NOT INITIAL.
COMMIT WORK AND WAIT.
SET PARAMETER ID '/DBM/ORDER_NUMBER' FIELD ev_vbeln.
CALL TRANSACTION '/DBM/ORDER02' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE 'Unable to create rental order/quotation contact IT' TYPE 'I'.
ENDIF.
ENDFORM. " CREAT_RENTAL_ORDER
2015 Aug 14 10:01 AM
Dear Ganesh,
Thanks for immediate solution.
Only one query , will we get quotation number in document flow ?
Thanks and Regards,
Makarand
2015 Aug 14 10:04 AM
or you can copy FM /DBM/ORDER_COPY_MAIN and remove pop up screen and replace with PAI code.
2015 Aug 14 10:08 AM
Sir, No for this You have to add this through document flow FM after new order is created
..its can be done need to check
2015 Aug 14 10:14 AM
FM /DBM/ORD_COPY_NEW will be much better option for you ..if you need exactly same copy behaviour
2015 Aug 14 10:53 AM