on 03-28-2007 9:14 AM
Hello friends,
Please help me how to create Sales order through BAPI.
What is the BAPI. and how to use.
Please its urgent.
Regards
Satish
This message was moderated.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Mon,
I also used CRM_ORDER_MAINTAIN and CRM_ORDER_SAVE.
But Organisational data and Item data is not populating. Order no is creating.
Plese help me in this.
This is my code.
ls_header-HANDLE = 1.
ls_header-process_type = 'ZABC'.
ls_header-logical_system = 'XYZCLNT444'.
ls_header-posting_date = sy-datum.
APPEND ls_header TO lt_header.
*
ls_partner-REF_HANDLE = 1.
ls_partner-ref_partner_handle = 1.
ls_partner-no_type = 'BP'.
ls_partner-display_type = 'BP'.
ls_partner-mainpartner = 'X'.
ls_partner-kind_of_entry = 'C'.
ls_partner-partner_fct = '00000001'.
ls_partner-partner_no = '0000010002'.
APPEND ls_partner TO lt_partner.
*
*ls_organisation-ref_guid = lv_guid.
ls_organisation-REF_HANDLE = 1.
ls_organisation-ref_kind = 'A'.
ls_organisation-mode = 'A'.
ls_organisation-dis_channel = '21'.
ls_organisation-division = 'B2'.
ls_organisation-sales_org = 'O 50000001'.
ls_organisation-sales_org_resp = 'O 50000001'.
APPEND ls_organisation TO lt_organisation.
*
*HEADER INPUT FIELDS
ls_input_fields-ref_HANDLE = 1.
ls_input_fields-objectname = 'A'. "(A for header and B for item)
ls_input_fields-objectname = 'ORDERADM_H'.
ls_input_field_names-fieldname = 'GUID'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'PROCESS_TYPE'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'LOGICAL_SYSTEM'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'POSTING_DATE'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
CLEAR: ls_input_field_names,ls_input_fields.
ORGMAN INPUT FIELDS
Oragnizational data
ls_input_fields-ref_HANDLE = 1.
ls_input_fields-ref_kind = 'A'. "(A for header and B for item)
ls_input_fields-objectname = 'ORGMAN'.
ls_input_field_names-fieldname = 'DIS_CHANNEL'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'DIVISION'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'SALES_ORG'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'SALES_ORG_RESP'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
CLEAR: ls_input_field_names,ls_input_fields.
*
*PArtner
ls_input_fields-ref_guid = lv_guid.
ls_input_fields-ref_HANDLE = 1.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'PARTNER'.
ls_input_field_names-fieldname = 'REF_GUID'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'PARTNER_FCT'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'PARTNER_NO'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
*
ls_input_field_names-fieldname = 'NO_TYPE'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'KIND_OF_ENTRY'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
ls_input_field_names-fieldname = 'DISP_TYPE'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
APPEND ls_input_fields TO gt_input_fields.
CLEAR: ls_input_field_names,ls_input_fields.
*
ls_item-handle = 1.
ls_item-ordered_prod = '00DH01X4'.
APPEND ls_item TO lt_item.
ls_input_fields-ref_HANDLE = 1.
ls_input_fields-ref_kind = 'B'.
ls_input_fields-objectname = 'ORDERADM_I'.
ls_input_field_names-fieldname = 'ORDERED_PROD'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
insert ls_input_fields into table gt_input_fields.
CLEAR: ls_input_field_names,ls_input_fields.
ls_schedlin_com-handle = 0.
ls_schedlin_com-quantity = 10.
INSERT ls_schedlin_com INTO TABLE ls_schedlin_i_com-schedlines.
INSERT ls_schedlin_i_com INTO TABLE lt_quantity.
ls_input_fields-ref_kind = 'B'.
ls_input_fields-ref_HANDLE = 1.
ls_input_fields-objectname = 'ORDERADM_I'.
ls_input_field_names-fieldname = 'QUANTITY'.
INSERT ls_input_field_names INTO TABLE ls_input_fields-field_names.
insert ls_input_fields into table gt_input_fields.
*APPEND ls_input_fields TO gt_input_fields.
CLEAR: ls_input_field_names,ls_input_fields.
*
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_orgman = lt_organisation
it_schedlin_i = lt_quantity
it_partner = lt_partner
CHANGING
ct_orderadm_h = lt_header
ct_orderadm_i = lt_item
ct_input_fields = gt_input_fields
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.
DATA: lt_objects_to TYPE crmt_object_guid_tab,
ls_objects_to TYPE crmt_object_guid.
DATA: lt_saved TYPE crmt_return_objects.
read table lt_header into ls_header index 1.
lv_guid = ls_header-guid.
ls_objects_to = lv_guid.
APPEND ls_objects_to TO lt_objects_to.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
it_objects_to_save = lt_objects_to
iv_update_task_local = space
iv_no_bdoc_send = space
IMPORTING
et_saved_objects = lt_saved
EXCEPTIONS
document_not_saved = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK.
Regards
Satish
Hi Satish,
In my case i introduce the organisational data with the partner. In BP i fill the organizational data and everything is ok when i use CRM_ORDER_MAINTAIN.
U can debug in the creation of an order in CRMD_ORDER, and put a breakpoint in CRM_ORDER_MAINTAIN when u fill the sales data in the order. U can see the it_orgman table..and only u have to do the same...
Mon
Message was edited by:
Mon
Jack I have created GUID from GUID_CREATE. and passed it to ls_organisation-ref_guid. But in debugging , after MAITAIN FM, LT_HEADER is not populating guid automatically.
so i have to read from that table and pass it to CRM_ORDER_SAVE. since i would be empty , it is giving me dump.
Regards
Dinesh
User | Count |
---|---|
7 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.