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.