Quantcast
Channel: SCN: Message List - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 7775

Re: Maintain higher line item using order maintain

$
0
0

Hi Janaki,

 

You can identify the parent item by using the field Parent, if parent is not initial then it should be a sub item only. So you can start the numbering 100 for the first item and then you can populate the parent value with line item 100 guid value. so the link will get formed and position number you can increment by 1. The below logic would help you on this issue,

 

 

 

Here the loop wil start from

 

 

IF lv_pci_id NE ls_cu_file_data-pci_id . " pci product

       
CLEAR ls_orderadm_i.

*        lv_pci_flag = abap_true.

        lv_pci_id
= ls_cu_file_data-pci_id.

        lv_item_number
= lv_item_number + 1.

        lv_parent
= lv_item_number.

        ls_orderadm_i
-number_int = lv_parent.

        ls_orderadm_i
-ordered_prod = lv_pci_id.



       
CALL FUNCTION 'CRM_GUID_CREATE'

         
IMPORTING

            ev_guid
= lv_parent_guid.

        ls_orderadm_i
-mode = 'A'.

        ls_orderadm_i
-guid = lv_parent_guid.

        ls_orderadm_i
-description = ls_cu_file_data-pci_desc.

        ls_orderadm_i
-header = ls_new_cu-guid.



        lv_item_handle
= lv_item_handle + 1.

        ls_orderadm_i
-handle = lv_item_handle.



        ls_fieldnames
-fieldname = 'ORDERED_PROD'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.



        ls_fieldnames
-fieldname = 'NUMBER_INT'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

        ls_fieldnames
-fieldname = 'HEADER'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.



        ls_fieldnames
-fieldname = 'DESCRIPTION'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

        ls_fieldnames
-fieldname = 'GUID'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

        ls_fieldnames
-fieldname = 'MODE'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.



        ls_fieldnames
-fieldname = 'HANDLE'.

       
INSERT ls_fieldnames INTO TABLE lt_fieldnames.





        ls_inputfields
-ref_guid  = ls_orderadm_i-guid.

        ls_inputfields
-ref_kind    = 'B'.

        ls_inputfields
-objectname  = 'ORDERADM_I'.

        ls_inputfields
-field_names = lt_fieldnames.

       
INSERT ls_inputfields INTO TABLE lt_input_fields.

       
INSERT ls_orderadm_i INTO TABLE lt_orderadm_i.



" si product

     
CLEAR ls_orderadm_i.

      lv_item_number
= lv_item_number + 1.

      ls_orderadm_i
-number_int = lv_item_number.

      ls_orderadm_i
-number_parent = lv_parent.

      ls_orderadm_i
-ordered_prod = ls_cu_file_data-product_id.

     
CALL FUNCTION 'CRM_GUID_CREATE'

       
IMPORTING

          ev_guid
= lv_item_guid.

      ls_orderadm_i
-guid = lv_item_guid.

      ls_orderadm_i
-parent = lv_parent_guid.

      ls_orderadm_i
-description = ls_cu_file_data-prod_desc.

*      ENDIF.

      ls_orderadm_i
-header = ls_new_cu-guid.

      ls_orderadm_i
-mode = 'A'.

      lv_item_handle
= lv_item_handle + 1.

      ls_orderadm_i
-handle = lv_item_handle.



      ls_fieldnames
-fieldname = 'ORDERED_PROD'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

*      ls_fieldnames-fieldname = 'PARTNER_PROD'.

*      INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'NUMBER_PARENT'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'DESCRIPTION'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'GUID'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'PARENT'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'NUMBER_INT'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'HEADER'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'MODE'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.

      ls_fieldnames
-fieldname = 'HANDLE'.

     
INSERT ls_fieldnames INTO TABLE lt_fieldnames.









      ls_inputfields
-ref_guid  = ls_orderadm_i-guid.

      ls_inputfields
-ref_kind    = 'B'.

      ls_inputfields
-objectname  = 'ORDERADM_I'.

      ls_inputfields
-field_names = lt_fieldnames.

     
INSERT ls_inputfields INTO TABLE lt_input_fields.

     
INSERT ls_inputfields INTO TABLE lt_input_pric_fields.

     
INSERT ls_orderadm_i INTO TABLE lt_orderadm_i.

 

 

 

CALL FUNCTION 'CRM_ORDER_MAINTAIN'

*         
EXPORTING

*           it_partner        = lt_partner


          IMPORTING

            et_exception     
= lt_exception

         
CHANGING

            ct_orderadm_i     = lt_orderadm_i

            ct_input_fields  
= lt_input_fields


         
EXCEPTIONS

            error_occurred   
= 1

            document_locked  
= 2

            no_change_allowed
= 3

            no_authority     
= 4

           
OTHERS            = 5.

 


Viewing all articles
Browse latest Browse all 7775

Trending Articles



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