SAP for Automotive Discussions
Connect with fellow SAP users in discussions to troubleshoot challenges, share best practices, and fuel each other's success. Join a conversation or start your own.
cancel
Showing results for 
Search instead for 
Did you mean: 

DBM service quotation copy to order

Former Member
0 Kudos
591

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos
345

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

View solution in original post

6 REPLIES 6

Former Member
0 Kudos
346

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

0 Kudos
345

Dear Ganesh,

Thanks for immediate solution.

Only one query , will we get quotation number in document flow ?

Thanks and Regards,

Makarand

0 Kudos
345

or you can copy FM  /DBM/ORDER_COPY_MAIN and remove pop up screen and replace with PAI code.

0 Kudos
345

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

0 Kudos
345

FM  /DBM/ORD_COPY_NEW  will be much better option for you ..if you need exactly same copy behaviour

0 Kudos
345

Perfect solution Ganesh... thanks a lot