cancel
Showing results for 
Search instead for 
Did you mean: 

Supplier / vendor List Upload SRM

er_akashpatel95
Explorer
0 Kudos

Hello ,

Please provide sample code to upload using FM : BBP_PD_AVL_CREATE .

We trying alot but got error in return message .

Thanking You

Akash Patel

Accepted Solutions (1)

Accepted Solutions (1)

er_akashpatel95
Explorer
0 Kudos
Please find attachment for upload program.<br>
*&---------------------------------------------------------------------*
*& Report ZSRM_SUPLIST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSRM_SUPLIST.


DATA : I_PARK	    TYPE XFELD VALUE 'X',
       I_SAVE     TYPE XFELD VALUE 'X',
       I_TESTRUN  TYPE XFELD,
       I_HEADER   TYPE BBP_PDS_AVL_HEADER_IC,
       IT_ATTACH  TYPE BBPT_PDS_ATT_T,
       I_ITEM     TYPE BBPT_PD_AVL_ITEM_ICU,
       I_PARTNER  TYPE BBPT_PDS_PARTNER,
       W_PARTNER  TYPE BBP_PDS_PARTNER,
       I_ORGDATA  TYPE BBPT_PDS_ORG,
       W_ORGDATA  TYPE BBP_PDS_ORG,
       I_LONGTEXT TYPE BBPT_PDS_LONGTEXT,
       I_HCF      TYPE BBPT_PDS_HCF_AVL,
       I_ICF      TYPE BBPT_PDS_ICF_AVL,
       E_HEADER   TYPE BBP_PDS_AVL_HEADER_D,
       ET_ATTACH  TYPE BBPT_PDS_ATT_T,
       E_ITEM     TYPE BBPT_PD_AVL_ITEM_D,
       E_PARTNER  TYPE BBPT_PDS_PARTNER,
       E_ORGDATA  TYPE BBPT_PDS_ORG,
       E_LONGTEXT TYPE BBPT_PDS_LONGTEXT,
       E_HCF      TYPE BBPT_PDS_HCF_AVL,
       E_ICF      TYPE BBPT_PDS_ICF_AVL,
       E_STATUS   TYPE BBPT_PDS_STATUS,
       E_MESSAGES TYPE BBPT_PDS_MESSAGES.


DATA: LT_ITEM_IMPORT   TYPE  BBPT_PD_ITEM,
      LS_ITEM_IMPORT   TYPE   BBP_PDS_ITEM,
      LT_ITEM_EXPORT   TYPE  BBPT_PD_ITEM,
      LS_HEADER_IMPORT TYPE BBP_PDS_HEADER,
      LS_HEADER_EXPORT TYPE BBP_PDS_HEADER,
      LT_HCF_IMPORT    TYPE BBPT_PDS_HCF,
      LT_HCF_EXPORT    TYPE BBPT_PDS_HCF,
      LT_ICF_IMPORT    TYPE BBPT_PDS_ICF,
      LT_ICF_EXPORT    TYPE BBPT_PDS_ICF.




DATA : WA_HEADER TYPE BBP_PDS_AVL_HEADER_U,
       ITM       TYPE TABLE OF BBP_PDS_AVL_ITEM_ICU,
       WAM       TYPE BBP_PDS_AVL_ITEM_ICU.


DATA : ITT_ITEM    TYPE TABLE OF BBP_PDS_AVL_ITEM_ICU,
       WAA_ITEM    TYPE  BBP_PDS_AVL_ITEM_ICU,
       ITT_PARTNER TYPE TABLE OF  BBP_PDS_PARTNER,
       WAA_PARTNER TYPE  BBP_PDS_PARTNER.


TYPES : BEGIN OF TY_DATA ,
          CAT(10)  TYPE C,
          VEND(10) TYPE C,
        END OF TY_DATA.


DATA : IT_ITAB  TYPE TABLE OF TY_DATA,
       IT_ITAB1 TYPE TABLE OF TY_DATA,
       WA_ITAB  TYPE TY_DATA,
       WA_ITAB1 TYPE TY_DATA.


DATA : P_P TYPE RLGRAP-FILENAME .


DATA : LV_LINE TYPE I VALUE 0 .


DATA : LV_PARTNER TYPE BU_PARTNER_GUID .


PARAMETERS P_FILE TYPE C LENGTH 200.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  DATA FILETABLES TYPE FILETABLE.
  DATA FILETABLE TYPE FILE_TABLE.
  DATA RC        TYPE I.




  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE            = 'Testtitel'
      DEFAULT_FILENAME        = '*.xls'
      INITIAL_DIRECTORY       = 'D:\temp\'
      FILE_FILTER             = CL_GUI_FRONTEND_SERVICES=>FILETYPE_ALL
    CHANGING
      FILE_TABLE              = FILETABLES
      RC                      = RC
    EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR              = 2
      ERROR_NO_GUI            = 3
      NOT_SUPPORTED_BY_GUI    = 4
      OTHERS                  = 5.


*  BREAK-POINT .


  READ TABLE FILETABLES INTO FILETABLE INDEX 1 .


  P_P = FILETABLE-FILENAME .


  CALL FUNCTION 'UPLOAD_XLS_FILE_2_ITAB'
    EXPORTING
      I_FILENAME = P_P
    TABLES
      E_ITAB     = IT_ITAB
    EXCEPTIONS
      FILE_ERROR = 1
      OTHERS     = 2.


  DELETE IT_ITAB INDEX 1 .


  IT_ITAB1[] = IT_ITAB[] .


  SORT IT_ITAB ASCENDING BY CAT .
  DELETE ADJACENT DUPLICATES FROM IT_ITAB COMPARING CAT .






  LOOP AT IT_ITAB INTO WA_ITAB.




    W_PARTNER-PARTNER_FCT = '00000051'.
    W_PARTNER-PARTNER_GUID = '1'.
*    W_PARTNER-PARTNER_GUID = '00000000000000000000000000000004'.
    W_PARTNER-P_GUID = '1'.
*    W_PARTNER-P_GUID = '00000000000000000000000000000001'.
    W_PARTNER-PARTNER_NO = '5E0783BBBA071ED797B36C28E3E0C05C'.
    APPEND W_PARTNER TO I_PARTNER .


    W_ORGDATA-GUID = '1'.
*    W_ORGDATA-GUID = '00000000000000000000000000000003'.
    W_ORGDATA-P_GUID = '1'.
*    W_ORGDATA-P_GUID = '00000000000000000000000000000001'.
    W_ORGDATA-PROC_ORG_RESP_OT = 'O'.
    W_ORGDATA-PROC_ORG_RESP_ID = '50000002'.
    W_ORGDATA-PROC_ORG_OT = 'O'.
    W_ORGDATA-PROC_ORG_ID = '50000002'.
    APPEND W_ORGDATA TO  I_ORGDATA .


    LS_HEADER_IMPORT-GUID = '1'.
*    LS_HEADER_IMPORT-GUID = '00000000000000000000000000000001'.
    LS_HEADER_IMPORT-DESCRIPTION = SY-UNAME.                  " Descrition
    LS_HEADER_IMPORT-PROCESS_TYPE	= 'VL' .
    LS_HEADER_IMPORT-OBJECT_TYPE  = 'BUS2206' .


    IF WA_ITAB-CAT  IS NOT INITIAL.
      LS_HEADER_IMPORT-CATEGORY_ID  = WA_ITAB-CAT .
      SELECT SINGLE CATEGORY_GUID FROM COMM_CATEGORY INTO  LS_HEADER_IMPORT-CATEGORY WHERE CATEGORY_ID = WA_ITAB-CAT  .
    ENDIF.
*    LS_HEADER_IMPORT-CATEGORY  = '5E0783BBBA071ED795B0533572B7C04A' .   " Category ID GUID


*    LS_HEADER_IMPORT-CATEGORY_ID  = 'EA50' .


    CALL FUNCTION 'BBP_PROCDOC_CREATE'
      EXPORTING
        I_PARK     = I_PARK
        I_SAVE     = I_SAVE
        I_TESTRUN  = I_TESTRUN
        I_HEADER   = LS_HEADER_IMPORT
        IT_ATTACH  = IT_ATTACH
      IMPORTING
        E_HEADER   = LS_HEADER_EXPORT
        ET_ATTACH  = ET_ATTACH
      TABLES
        I_ITEM     = LT_ITEM_IMPORT
        I_PARTNER  = I_PARTNER
        I_ORGDATA  = I_ORGDATA
        I_LONGTEXT = I_LONGTEXT
        I_HCF      = LT_HCF_IMPORT
        I_ICF      = LT_ICF_IMPORT
        E_ITEM     = LT_ITEM_EXPORT
        E_PARTNER  = E_PARTNER
        E_ORGDATA  = E_ORGDATA
        E_LONGTEXT = E_LONGTEXT
        E_HCF      = LT_HCF_EXPORT
        E_ICF      = LT_ICF_EXPORT
        E_STATUS   = E_STATUS
        E_MESSAGES = E_MESSAGES.


*    IF LS_HEADER_EXPORT-GUID IS NOT INITIAL .
*      CALL FUNCTION 'BBP_PD_AVL_SAVE'
*        EXPORTING
*          IV_HEADER_GUID = LS_HEADER_EXPORT-GUID.
*      COMMIT WORK AND WAIT.
*    ENDIF.
    IF LS_HEADER_EXPORT-OBJECT_ID IS NOT INITIAL.
      CLEAR LV_LINE .
      LOOP AT IT_ITAB1 INTO WA_ITAB1 WHERE CAT = WA_ITAB-CAT .


        MOVE-CORRESPONDING LS_HEADER_EXPORT TO WA_HEADER.
        ADD 1 TO LV_LINE .
        WAA_ITEM-GUID = LV_LINE.
*        WAA_ITEM-GUID = '1'.
*        WAA_ITEM-GUID = '00000000000000000000000000000001'.
        WAA_ITEM-PARENT = LS_HEADER_EXPORT-GUID .
        WAA_ITEM-NUMBER_INT = LV_LINE.
*        WAA_ITEM-NUMBER_INT = '1'.
*        WAA_ITEM-NUMBER_INT = '0000000001'.
        APPEND WAA_ITEM TO ITT_ITEM .


        SELECT SINGLE PARTNER_GUID FROM BUT000 INTO LV_PARTNER WHERE PARTNER = WA_ITAB1-VEND .


        IF LV_PARTNER IS NOT INITIAL .


          WAA_PARTNER-PARTNER_FCT = '00000019'.
          WAA_PARTNER-PARTNER_GUID = LV_LINE.
*        WAA_PARTNER-PARTNER_GUID = '1'.
*        WAA_PARTNER-PARTNER_GUID = '00000000000000000000000000000001'.
          WAA_PARTNER-P_GUID = WAA_ITEM-GUID .
          WAA_PARTNER-PARTNER_NO = LV_PARTNER.
*          WAA_PARTNER-PARTNER_NO = '5E0783BBBA071ED7A4DD3CCEBDDFC0BF'.
          APPEND WAA_PARTNER TO ITT_PARTNER .


        ENDIF.
*WAA_ITEM-GUID = '00000000000000000000000000000001'.
*WAA_ITEM-PARENT = LS_HEADER_EXPORT-GUID .
*WAA_ITEM-NUMBER_INT = '0000000002'.
*APPEND WAA_ITEM TO ITT_ITEM .
*
*WAA_PARTNER-PARTNER_FCT = '00000019'.
*WAA_PARTNER-PARTNER_GUID = '00000000000000000000000000000002'.
*WAA_PARTNER-P_GUID = WAA_ITEM-GUID .
*WAA_PARTNER-PARTNER_NO = '5E0783BBBA071ED7A4DD3CF6A27280BF'.
*APPEND WAA_PARTNER TO ITT_PARTNER .
      ENDLOOP.
      IF ITT_ITEM IS NOT INITIAL.
        CALL FUNCTION 'BBP_PD_AVL_UPDATE'
          EXPORTING
            I_PARK     = 'X'
            I_HEADER   = WA_HEADER
            I_SAVE     = 'X'
          TABLES
            I_ITEM     = ITT_ITEM
            I_PARTNER  = ITT_PARTNER
            E_MESSAGES = E_MESSAGES.
        IF E_MESSAGES IS INITIAL.
          CALL FUNCTION 'BBP_PD_AVL_SAVE'
            EXPORTING
              IV_HEADER_GUID = LS_HEADER_EXPORT-GUID.
          COMMIT WORK AND WAIT.
        ENDIF.
      ENDIF.


    ENDIF.
  ENDLOOP.
  BREAK-POINT.


Answers (2)

Answers (2)

ivy_li
Active Contributor
0 Kudos

Hi,

I agree with Daniel that this is not supported to adopt internal FM directly, and you have to adjust the parameters and also the coding.

I would suggest you copy this FM to generate your own and adjust the coding then.

In standard, it is called as below:

CALL FUNCTION 'BBP_PD_AVL_CREATE'
EXPORTING
* I_PARK =
* I_SAVE =
* I_TESTRUN =
i_header = ls_pd_header_c
IMPORTING
e_header = ls_pd_header_d
TABLES
i_item = lti_item
i_partner = lt_partner
i_orgdata = lti_orgdata
e_item = lte_item
e_partner = et_partner
e_orgdata = lte_orgdata
e_status = et_status
e_messages = et_message.

BR,

Ivy

daniel_marlen
Active Participant
0 Kudos

Hello Akash,

FM BBP_PD_AVL_CREATE is a not released Function Module, so it is not guaranteed that it can work when calling it standalone from a custom logic or from SE37. Isn't it possible to create the Vendor Lists from Portal or NWBC?

Best regards,

Daniel

er_akashpatel95
Explorer
0 Kudos

Hello Daniel,

By Manual entry Directly in Portal, its very long process for 2000+ categories.

So Via creating upload program we add bulk of data for vendor list in SRM.

Possible just suggest how to use the FM or any other code to create upload program.

Thanking You

Akash Patel