Quantcast
Channel: SCN : All Content - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 4552

How to add multiple Line Items by using BAPI_OPPORTUNITY_CREATEMULTI

$
0
0

Hello.

 

I want create Opportunity by using BAPI_OPPORTUNITY_CREATEMULTI.

 

I crated Header Item Easily.

I created Item details also.

But it takes only one Line Item.

I want more than one Line Item.

How it is possible by using this BAPI_OPPORTUNITY_CREATEMULTI.

Here I write my total code.

 

REPORT  ZOPPORTUNITY_ITEM_PG.

PARAMETERS: P_DESC1 TYPE BAPIBUS20001_HEADER_INS-DESCRIPTION,

P_DESC2 TYPE BAPIBUS20001_OPPORTUNITY-DESCRIPTION_OPP,

P_SO TYPE BAPIBUS20001_ORGMAN_INS-SALES_ORG,

P_DC TYPE BAPIBUS20001_ORGMAN_INS-DIS_CHANNEL,

P_OWNER TYPE BAPIBUS20001_PARTNER_INS-PARTNER_NO MATCHCODE OBJECT BUPAR,

P_SP TYPE BAPIBUS20001_PARTNER_INS-PARTNER_NO MATCHCODE OBJECT BUPAR,

P_CP TYPE BAPIBUS20001_PARTNER_INS-PARTNER_NO MATCHCODE OBJECT BUPAR,

P_STA TYPE BAPIBUS20001_STATUS_INS-STATUS.

DATA: IT_HEADER TYPE TABLE OF BAPIBUS20001_HEADER_INS WITH HEADER LINE,

      IT_OPPORTUNITY TYPE TABLE OF BAPIBUS20001_OPPORTUNITY WITH HEADER LINE,

      IT_ORGANISATION TYPE TABLE OF BAPIBUS20001_ORGMAN_INS WITH HEADER LINE,

      IT_PARTNER TYPE TABLE OF BAPIBUS20001_PARTNER_INS WITH HEADER LINE,

      ITEM  TYPE TABLE OF BAPIBUS20001_ITEM WITH HEADER LINE,

      PRODUCT TYPE TABLE OF  BAPIBUS20001_PRODUCT WITH HEADER LINE,

      SCHEDLIN TYPE TABLE OF BAPIBUS20001_SCHEDLIN WITH HEADER LINE,

      IT_INPUT_FIELDS TYPE TABLE OF BAPIBUS20001_INPUT_FIELDS WITH HEADER LINE,

      IT_RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE,

      IT_SAVED_PROCESS TYPE TABLE OF BAPIBUS20001_OBJECT_ID WITH HEADER LINE,

      IT_STATUS     TYPE TABLE OF     BAPIBUS20001_STATUS_INS WITH HEADER LINE,

      V_BLANK_GUID TYPE BAPIBUS20001_HEADER_INS-GUID VALUE '00000000000000000000000000000000',

      V_ITEM_GUID TYPE BAPIBUS20001_HEADER_INS-GUID VALUE '00000000000000000000000000000000'.

--


HEADER--

IT_HEADER-GUID = V_BLANK_GUID.  IT_HEADER-HANDLE =  '0000000001'.  IT_HEADER-PROCESS_TYPE =  'CXOP'.

IT_HEADER-BIN_RELATION_TYPE = 'VONA'.  IT_HEADER-DESCR_LANGUAGE = 'E'.  IT_HEADER-LANGU_ISO = 'EN'.

IT_HEADER-DESCRIPTION     = P_DESC1.    "'Opp for sales of com'.   IT_HEADER-POSTING_DATE  = SY-DATUM.

IT_HEADER-CREATED_BY  = SY-UNAME.  APPEND IT_HEADER.  CLEAR IT_HEADER.

--


HEADER-INPUTFIELDS--

IT_INPUT_FIELDS-REF_HANDLE = 1. "<== Must be set if the others are too.  IT_INPUT_FIELDS-REF_GUID = V_BLANK_GUID.

IT_INPUT_FIELDS-OBJECTNAME = 'ORDERADM_H'.  IT_INPUT_FIELDS-REF_KIND = ' '. "A <== No effect setting to A or leave blank.  IT_INPUT_FIELDS-LOGICAL_KEY = '0001'.  IT_INPUT_FIELDS-FIELDNAME = 'DESCRIPTION'.

APPEND IT_INPUT_FIELDS.  CLEAR IT_INPUT_FIELDS.

--


OPPORTUNITY--

IT_OPPORTUNITY-REF_HANDLE     = '0000000001'.   IT_OPPORTUNITY-REF_GUID     = V_BLANK_GUID.

IT_OPPORTUNITY-STARTDATE  = SY-DATUM.  IT_OPPORTUNITY-FORECAST_REL     = 'X'.

IT_OPPORTUNITY-SALESCYCLE     = '2'.  IT_OPPORTUNITY-TYPE      = '0001'.

IT_OPPORTUNITY-STATUS_SINCE     =     SY-DATUM.   IT_OPPORTUNITY-DESCRIPTION_OPP  = P_DESC2.     "'Cloned from master 369'.   APPEND IT_OPPORTUNITY.  CLEAR IT_OPPORTUNITY.

--


OPPORTUNITY-INPUTFIELDS--

CLEAR IT_INPUT_FIELDS.  IT_INPUT_FIELDS-REF_HANDLE = 1. "<== Must be set if the others are too.

IT_INPUT_FIELDS-REF_GUID = V_BLANK_GUID.  IT_INPUT_FIELDS-OBJECTNAME = 'OPPORT_H'.

IT_INPUT_FIELDS-REF_KIND = 'A'.  IT_INPUT_FIELDS-LOGICAL_KEY = '0001'.  IT_INPUT_FIELDS-FIELDNAME = 'STARTDATE'.

APPEND IT_INPUT_FIELDS.  IT_INPUT_FIELDS-FIELDNAME = 'FORECAST_REL'.  APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'SALESCYCLE'.  APPEND IT_INPUT_FIELDS.  IT_INPUT_FIELDS-FIELDNAME = 'TYPE'.

APPEND IT_INPUT_FIELDS.   IT_INPUT_FIELDS-FIELDNAME = 'STATUS_SINCE'.  APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'DESCRIPTION_OPP'.   APPEND IT_INPUT_FIELDS.   CLEAR IT_INPUT_FIELDS.

--


ORGANISATION--

IT_ORGANISATION-REF_GUID  =   V_BLANK_GUID.  IT_ORGANISATION-REF_HANDLE  = '0000000001'.

IT_ORGANISATION-REF_KIND  = 'A'.  IT_ORGANISATION-DIS_CHANNEL     =     P_DC.                         "'01'.

IT_ORGANISATION-SALES_ORG     = P_SO.   "'O 50000832'.  IT_ORGANISATION-SALES_ORG_RESP  = P_SO.  "'O 50000832'.  APPEND IT_ORGANISATION.  CLEAR IT_ORGANISATION.

--


ORGANISATION-INPUTFIELDS--

IT_INPUT_FIELDS-REF_HANDLE = 1. "<== Must be set if the others are too.  IT_INPUT_FIELDS-REF_GUID = V_BLANK_GUID.

IT_INPUT_FIELDS-OBJECTNAME = 'ORGMAN'.  IT_INPUT_FIELDS-REF_KIND = 'A'.  IT_INPUT_FIELDS-LOGICAL_KEY = '0001'.

IT_INPUT_FIELDS-FIELDNAME = 'DIS_CHANNEL'.  IT_INPUT_FIELDS-CHANGEABLE = ' '.  APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORG'.  APPEND IT_INPUT_FIELDS. IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORGR_ORI'.

APPEND IT_INPUT_FIELDS. IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORG_ORI'.  APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORG_RESP'.  APPEND IT_INPUT_FIELDS.  IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORG_RESP_SHORT'.  APPEND IT_INPUT_FIELDS.  IT_INPUT_FIELDS-FIELDNAME = 'SALES_ORG_SHORT'.

APPEND IT_INPUT_FIELDS.  CLEAR IT_INPUT_FIELDS. 

*----


ITEM DATA

  •    V_ITEM_GUID = V_ITEM_GUID.

ITEM-HANDLE = '0000000001'.   ITEM-HEADER_HANDLE = '0000000001'.   ITEM-HEADER = V_BLANK_GUID.

ITEM-PRODUCT = V_BLANK_GUID.  ITEM-ORDERED_PROD = 'BLACK COFFEE'.  "IT_ITEM-PRODUCT.

ITEM-DESCRIPTION = 'BLACK COFFEE'.   "IT_ITEM-DES1.   ITEM-ITM_LANGUAGE = 'EN'.   ITEM-LANGU_ISO = 'EN'.

ITEM-NUMBER_INT = '10'.   "IT_ITEM-ITEM.   ITEM-ITM_TYPE = 'OPPT'.   "IT_ITEM-ITEMCATEGORY.

APPEND ITEM.   *    CLEAR ITEM.   IT_INPUT_FIELDS-REF_HANDLE = '0000000001'.

IT_INPUT_FIELDS-REF_GUID = V_ITEM_GUID.   "00000000000000000000000000000000  

IT_INPUT_FIELDS-REF_KIND = ' '.   IT_INPUT_FIELDS-OBJECTNAME = 'ORDERADM_I'.

IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.   IT_INPUT_FIELDS-FIELDNAME = 'ORDERED_PROD'.  APPEND IT_INPUT_FIELDS. 

IT_INPUT_FIELDS-FIELDNAME = 'MODE'.  APPEND IT_INPUT_FIELDS.  CLEAR IT_INPUT_FIELDS. 

  •    CLEAR SCHEDLIN.    SCHEDLIN-ITEM_GUID = V_ITEM_GUID.   SCHEDLIN-ITEM_HANDLE = '0000000001'.

SCHEDLIN-GUID = V_BLANK_GUID.  SCHEDLIN-HANDLE = '0000000001'.  SCHEDLIN-QUANTITY = '20'.   "IT_ITEM-QUANTITY.    "20.     APPEND SCHEDLIN.   *    CLEAR SCHEDLIN.

IT_INPUT_FIELDS-REF_HANDLE = '0000000001'.    IT_INPUT_FIELDS-REF_GUID =   V_ITEM_GUID.   "00000000000000000000000000000000

IT_INPUT_FIELDS-REF_KIND = 'B'.  IT_INPUT_FIELDS-OBJECTNAME = 'SCHEDLIN'.   IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.

IT_INPUT_FIELDS-FIELDNAME = 'LOGICAL_KEY'.   APPEND IT_INPUT_FIELDS.  IT_INPUT_FIELDS-FIELDNAME = 'QUANTITY'.

APPEND IT_INPUT_FIELDS.    CLEAR IT_INPUT_FIELDS.   PRODUCT-REF_GUID = V_ITEM_GUID.

PRODUCT-REF_HANDLE = '0000000001'.   PRODUCT-PROCESS_QTY_NUM = '1'.  PRODUCT-PROCESS_QTY_DEN = '1'.

PRODUCT-PROCESS_QTY_UNIT = 'EA'.   "IT_ITEM-SALESUNIT. "'EA'.   PRODUCT-PROCESS_QTY_UNIT_ISO = 'EA'.   "IT_ITEM-SALESUNIT.  "'EA'.   *    PRODUCT-BASE_QTY_UNIT = IT_ITEM-SALESUNIT.  "'EA'.

  •    PRODUCT-BASE_QTY_UNIT_ISO = IT_ITEM-SALESUNIT.  "'EA'.   APPEND PRODUCT.  *    CLEAR PRODUCT.

CLEAR IT_INPUT_FIELDS.   IT_INPUT_FIELDS-REF_HANDLE  =   '0000000001'.

IT_INPUT_FIELDS-REF_GUID  = V_ITEM_GUID.   "DE81864202E8FFF1BBA2001517895069

IT_INPUT_FIELDS-REF_KIND  = 'B'.    IT_INPUT_FIELDS-OBJECTNAME  = 'PRODUCT_I'.

IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.   IT_INPUT_FIELDS-FIELDNAME  = 'PROCESS_QTY_UNIT '.

APPEND IT_INPUT_FIELDS.  CLEAR IT_INPUT_FIELDS.

*----


ITEM-HANDLE = '0000000002'.

ITEM-HEADER_HANDLE = '0000000001'.

ITEM-HEADER = V_BLANK_GUID.

ITEM-PRODUCT = V_BLANK_GUID.

ITEM-ORDERED_PROD = 'BATHTUB'.  "IT_ITEM-PRODUCT.

ITEM-DESCRIPTION = 'BATHTUB'.   "IT_ITEM-DES1.

ITEM-ITM_LANGUAGE = 'EN'.

ITEM-LANGU_ISO = 'EN'.

ITEM-NUMBER_INT = '10'.   "IT_ITEM-ITEM.

ITEM-ITM_TYPE = 'OPPT'.   "IT_ITEM-ITEMCATEGORY.

APPEND ITEM.

  •    CLEAR ITEM.

IT_INPUT_FIELDS-REF_HANDLE = '0000000001'.

IT_INPUT_FIELDS-REF_GUID = V_ITEM_GUID.   "00000000000000000000000000000000

IT_INPUT_FIELDS-REF_KIND = ' '.

IT_INPUT_FIELDS-OBJECTNAME = 'ORDERADM_I'.

IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.

IT_INPUT_FIELDS-FIELDNAME = 'ORDERED_PROD'.

APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'MODE'.

APPEND IT_INPUT_FIELDS.

CLEAR IT_INPUT_FIELDS.

 

  •    CLEAR SCHEDLIN.

SCHEDLIN-ITEM_GUID = V_ITEM_GUID.

SCHEDLIN-ITEM_HANDLE = '0000000001'.

SCHEDLIN-GUID = V_BLANK_GUID.

SCHEDLIN-HANDLE = '0000000001'.

SCHEDLIN-QUANTITY = '20'.   "IT_ITEM-QUANTITY.    "20.

APPEND SCHEDLIN.

      •    CLEAR SCHEDLIN.

IT_INPUT_FIELDS-REF_HANDLE = '0000000001'.

IT_INPUT_FIELDS-REF_GUID = V_ITEM_GUID.   "00000000000000000000000000000000

IT_INPUT_FIELDS-REF_KIND = 'B'.

IT_INPUT_FIELDS-OBJECTNAME = 'SCHEDLIN'.

IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.

IT_INPUT_FIELDS-FIELDNAME = 'LOGICAL_KEY'.

APPEND IT_INPUT_FIELDS.

IT_INPUT_FIELDS-FIELDNAME = 'QUANTITY'.

APPEND IT_INPUT_FIELDS.

CLEAR IT_INPUT_FIELDS.

 

PRODUCT-REF_GUID = V_ITEM_GUID.

PRODUCT-REF_HANDLE = '0000000001'.

PRODUCT-PROCESS_QTY_NUM = '1'.

PRODUCT-PROCESS_QTY_DEN = '1'.

PRODUCT-PROCESS_QTY_UNIT = 'EA'.   "IT_ITEM-SALESUNIT. "'EA'.

PRODUCT-PROCESS_QTY_UNIT_ISO = 'EA'.   "IT_ITEM-SALESUNIT.  "'EA'.

  •    PRODUCT-BASE_QTY_UNIT = IT_ITEM-SALESUNIT.  "'EA'.

  •    PRODUCT-BASE_QTY_UNIT_ISO = IT_ITEM-SALESUNIT.  "'EA'.

APPEND PRODUCT.

CLEAR PRODUCT.

CLEAR IT_INPUT_FIELDS.

IT_INPUT_FIELDS-REF_HANDLE  =   '0000000001'.

IT_INPUT_FIELDS-REF_GUID  = V_ITEM_GUID.   "DE81864202E8FFF1BBA2001517895069

IT_INPUT_FIELDS-REF_KIND  = 'B'.

IT_INPUT_FIELDS-OBJECTNAME  = 'PRODUCT_I'.

IT_INPUT_FIELDS-LOGICAL_KEY  = ' '.

IT_INPUT_FIELDS-FIELDNAME  = 'PROCESS_QTY_UNIT '.

APPEND IT_INPUT_FIELDS.

CLEAR IT_INPUT_FIELDS.

 

 

 

 

--


CALL BAPI--

 

CALL FUNCTION 'BAPI_OPPORTUNITY_CREATEMULTI'

EXPORTING

   TESTRUN                = ' '

  TABLES

    HEADER                 = IT_HEADER

    OPPORTUNITY            = IT_OPPORTUNITY

   ORGANISATION           = IT_ORGANISATION

   PARTNER                = IT_PARTNER

  •   TEXT                   =

   PRODUCT                = PRODUCT

  •   PRICING                =

    INPUT_FIELDS           = IT_INPUT_FIELDS

  •   CREATED_PROCESS        =

   RETURN                 = IT_RETURN

   SAVED_PROCESS          = IT_SAVED_PROCESS

   ITEM                   = ITEM

   SCHEDULELINE           = SCHEDLIN

  •   APPOINTMENT            =

  •   SERVICE_OS             =

   STATUS                 = IT_STATUS

  •   CUSTOMER_HEAD          =

  •   CUSTOMER_ITEM          =

  •   DOCUMENT_FLOW          =

  •   PRICING_ITEM           =

  •   CONFIG_CFG             =

  •   CONFIG_BLB             =

  •   CONFIG_INS             =

  •   CONFIG_PRT             =

  •   CONFIG_VAL             =

  •   CONFIG_VK              =

  •   CONFIG_REF             =

  •   CONDITION_CREATE       =

  •   EXTENSIONIN            =

          .

 

 

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  •   WAIT          =

  • IMPORTING

  •   RETURN        =

          .

 

 

LOOP AT IT_RETURN.

  WRITE:/ IT_RETURN-MESSAGE.

ENDLOOP.

 

LOOP AT IT_SAVED_PROCESS.

  WRITE:/ IT_SAVED_PROCESS.

ENDLOOP.

 

 

I am uable to get Second Item.

How it is possible to get more Line Items.

 

Let me know if any changes are required in the Program.

 

Regard


Viewing all articles
Browse latest Browse all 4552

Trending Articles



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