Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2801

how to add my enhancement fields by useing CRM_ORDER_MAINTAIN

$
0
0

I want to create an order by using  CRM_ORDER_MAINTAIN , the header data is ok now,  but the item date field can not be uploaded to system successfully  .my code is as follows:

 

DATA:

       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,

 

       lt_saved_objects     TYPE  crmt_return_objects,

 

       lt_orderadm_h        TYPE  crmt_orderadm_h_comt,

       ls_orderadm_h        TYPE  crmt_orderadm_h_com,

 

       lt_opport_h          TYPE crmt_opport_h_comt,

       ls_opport_h          TYPE LINE OF crmt_opport_h_comt,

 

       lt_nametab           TYPE  crmt_input_field_names_tab,

       ls_nametab           TYPE  crmt_input_field_names,

 

       ls_save_guid         TYPE  crmt_object_guid,

       lt_save_guid         TYPE  crmt_object_guid_tab.

 

     DATA: i_exception TYPE crmt_exception_t.

 

     DATA: lt_extension2 TYPE crmt_extension2_comt,

           ls_extension2 TYPE crmt_extension2_com,

 

           ls_retreq_i   TYPE ztab0000m8,

           lt_retreq_i   TYPE REF TO   ztab0000m8t.

 

 

     FIELD-SYMBOLS:<ls_extension2> TYPE crmt_extension2_wrk,

                   <ls_retreq_i>   TYPE ztab0000m8,

                   <fs_retreq_i>   TYPE ztab0000m8,

                   <fs_data>       TYPE ztab0000m8.

 

 

 

 

     CALL FUNCTION 'CRM_INTLAY_GET_HANDLE'

       IMPORTING

         ev_handle = ls_input_fields-ref_handle.

 

 

 

     CREATE DATA lt_retreq_i.

     CLEAR ls_extension2.

 

     ASSIGN ls_retreq_i TO <fs_retreq_i>.

     IF <fs_retreq_i> IS ASSIGNED.

       <fs_retreq_i>-zzfld00006x = '30'.

       <fs_retreq_i>-zzfld00006y = 'EUR'.

     ENDIF.

     INSERT <fs_retreq_i> INTO  TABLE lt_retreq_i->*.

 

 

 

     ls_extension2-data = lt_retreq_i.

     ls_extension2-ref_handle = ls_input_fields-ref_handle.

     ls_extension2-ref_kind = 'A'.

     APPEND ls_extension2 TO lt_extension2.

 

 

 

     ls_nametab = 'ZZFLD00006X'.

     INSERT  ls_nametab INTO TABLE lt_nametab.

     ls_nametab = 'ZZFLD00006Y'.

     INSERT ls_nametab INTO TABLE lt_nametab.

 

 

*    ls_nametab-fieldname = 'DATA'.

*    INSERT  ls_nametab INTO TABLE lt_nametab.

*    ls_nametab-fieldname = 'REF_HANDLE'.

*    INSERT ls_nametab INTO TABLE lt_nametab.

*    ls_nametab-fieldname = 'REF_KIND'.

*    INSERT ls_nametab INTO TABLE lt_nametab.

*    ls_nametab-fieldname = 'OBJECT'.

*    INSERT ls_nametab INTO TABLE lt_nametab.

 

 

     ls_input_fields-ref_kind = 'A'.

     ls_input_fields-objectname = 'ZOBJ000001'. "EXTENSION2

     ls_input_fields-field_names = lt_nametab.

     INSERT ls_input_fields INTO TABLE lt_input_fields.

     CLEAR: ls_nametab, lt_nametab[].

 

 

     ls_orderadm_h-handle       = ls_input_fields-ref_handle.

     ls_orderadm_h-process_type = 'ZPRD'.

     ls_orderadm_h-mode         = 'A'.

     ls_orderadm_h-zzfld00007m  = '005056A45BD71ED596F4C15C9E1BE9E0'"产品GUID号

     APPEND ls_orderadm_h TO lt_orderadm_h.

 

 

     ls_nametab-fieldname = 'HANDLE'.

     INSERT ls_nametab INTO TABLE lt_nametab.

     ls_nametab-fieldname = 'MODE'.

     INSERT ls_nametab INTO TABLE lt_nametab.

     ls_nametab-fieldname = 'PROCESS_TYPE'.

     INSERT ls_nametab INTO TABLE lt_nametab.

     ls_nametab-fieldname = 'ZZFLD00007M'.

     INSERT ls_nametab INTO TABLE lt_nametab.

 

*    ls_input_fields-ref_handle = ls_input_fields-ref_handle + 1.

     ls_input_fields-ref_kind = 'A'.

     ls_input_fields-objectname = 'ORDERADM_H'.

     ls_input_fields-field_names = lt_nametab.

     INSERT ls_input_fields INTO TABLE lt_input_fields.

     CLEAR: ls_nametab, lt_nametab[].

 

 

 

     CALL FUNCTION 'CRM_ORDER_MAINTAIN'

       EXPORTING

*       it_opport_h       = lt_opport_h

         it_extension2     = lt_extension2

       IMPORTING

         et_exception      = i_exception " CRMT_EXCEPTION_T

       CHANGING

         ct_orderadm_h     = lt_orderadm_h

*       ct_orderadm_i     =

         ct_input_fields   = lt_input_fields

*       CV_LOG_HANDLE     =

*       CT_PARTNER_ATTRIBUTES         =

*       CT_DOC_FLOW       =

       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.

 

     IF sy-subrc = 0.

       READ TABLE lt_orderadm_h INTO ls_orderadm_h INDEX 1.

       ls_save_guid = ls_orderadm_h-guid.

       APPEND ls_save_guid TO lt_save_guid.

     ENDIF.

 

 

     CALL FUNCTION 'CRM_ORDER_SAVE'

       EXPORTING

         it_objects_to_save = lt_save_guid

       IMPORTING

         et_saved_objects   = lt_saved_objects

       EXCEPTIONS

         document_not_saved = 1

         OTHERS             = 2.

 

     IF sy-subrc = 0.

       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

     ENDIF.

*

   ENDIF.


Viewing all articles
Browse latest Browse all 2801

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>