cancel
Showing results for 
Search instead for 
Did you mean: 

Sales Order creation

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

This message was moderated.

Former Member
0 Kudos

Hi Dinesh,

You have a opened question with the same theme and it is answered:

Regards,

Mon

Former Member
0 Kudos

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

Former Member
0 Kudos

You need the giud !

......

APPEND ls_partner TO lt_partner.

*

<b>

ls_organisation-ref_guid = lv_guid.</b>

ls_organisation-REF_HANDLE = 1.

ls_organisation-ref_kind = 'A'.

ls_organisation-mode = 'A'.

.......

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Jack when i give Guid it is giving dump.

Former Member
0 Kudos

Now debugg the application and find whether the dump is causing. This cause may due to guid field being Empty or duplication of fields !

Thanks

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Dinesh,

You dont need the guid, is generated automatically. Try to generated a order sale without the it_orgman table.

Regards,

Mon

Former Member
0 Kudos

Hi Mon,

I think we should not create SO without Organizational data.

But any how i did it.

Sold to party no is not populating. Do i need to pass any other parameter.

I am able to create the SO no. but with the errors.

Regards

Dinesh