Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Creating Po with bapi, via ean11

Former Member
0 Kudos
345
Hello everyone.

I am creating po(me21n) with text file (format is 123123 1 matnr and quantity)

when i upload this texts. it works good. But i need to make text file format

ean11 and quantity. (8681231231231 1 for example) i could not find any solutions.

You can see my code below.

Thanks


SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

*&---------------------------------------------------------------------*

*& Report ZIADE

*&---------------------------------------------------------------------*

*&

*&---------------------------------------------------------------------*

REPORT ZIADE2.





CONSTANTS : C_X VALUE 'X'.

DATA: X TYPE I.

DATA : V_FILE TYPE STRING.

DATA : BEGIN OF IT_DATA OCCURS 0,

         "CREAT_DATE(50), " Yaratma Tarihi

         " VENDOR(50), "satıcı

         EMATN(18), "Malzeme numarası

         " SHORT_TEXT(50)  ,

         "GRUP_ART(50),

         "PLANT(50),

         QUANTITY(13),

         "PO_UNIT(50),

         "RET_ITEM(1),

         "DOCTYPE(50),



       END OF IT_DATA.

DATA : HEADER  LIKE BAPIMEPOHEADER,

       HEADERX LIKE BAPIMEPOHEADERX.

DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

DATA : ACCOUNT  LIKE BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE,

       ACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE.

DATA : ITEMSCHEDULE  LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,

       ITEMSCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE.

DATA : ITEM   LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,

       ITEMX  LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,



       RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.



"DATA : W_HEADER(40)  VALUE 'PO Header',

"      PURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,

"     DELIVERY_DATE LIKE BAPIMEPOSCHEDULE-DELIVERY_DATE.







SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.



PARAMETERS: P_FILE TYPE RLGRAP-FILENAME DEFAULT 'C:\Users\ERKANKA\Desktop\me21n.txt',

            VENDOR LIKE HEADER-VENDOR DEFAULT '1001',

            WERKS  LIKE ITEM-PLANT DEFAULT '3125'.

"MATL   LIKE ITEM-MATL_GROUP.

SELECTION-SCREEN END OF BLOCK B1.







AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.



  CALL FUNCTION 'F4_FILENAME'

    EXPORTING

      PROGRAM_NAME  = SYST-CPROG

      DYNPRO_NUMBER = SYST-DYNNR

      FIELD_NAME    = ' '

    IMPORTING

      FILE_NAME     = P_FILE.



START-OF-SELECTION.



  V_FILE = P_FILE.



  CALL FUNCTION 'GUI_UPLOAD'

    EXPORTING

      FILENAME                = V_FILE

      FILETYPE                = 'ASC'

      HAS_FIELD_SEPARATOR     = ' '

    TABLES

      DATA_TAB                = IT_DATA

    EXCEPTIONS

      FILE_OPEN_ERROR         = 1

      FILE_READ_ERROR         = 2

      NO_BATCH                = 3

      GUI_REFUSE_FILETRANSFER = 4

      INVALID_TYPE            = 5

      NO_AUTHORITY            = 6

      UNKNOWN_ERROR           = 7

      BAD_DATA_FORMAT         = 8

      HEADER_NOT_ALLOWED      = 9

      SEPARATOR_NOT_ALLOWED   = 10

      HEADER_TOO_LONG         = 11

      UNKNOWN_DP_ERROR        = 12

      ACCESS_DENIED           = 13

      DP_OUT_OF_MEMORY        = 14

      DISK_FULL               = 15

      DP_TIMEOUT              = 16

      OTHERS                  = 17.



  IF SY-SUBRC <> 0.



    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO



    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.



  ENDIF.





END-OF-SELECTION.



  PERFORM UPLOAD.



FORM UPLOAD.

  LOOP AT IT_DATA.

*-------------------------------------

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

      EXPORTING

        INPUT  = IT_DATA-EMATN

      IMPORTING

        OUTPUT = IT_DATA-EMATN.

*----------------------------------------



    HEADER-DOC_TYPE = 'ZKID' .

    HEADER-VENDOR = VENDOR.

    HEADER-CREAT_DATE = SY-DATUM .

    HEADER-CREATED_BY = SY-UNAME .

    HEADER-PURCH_ORG = '1000' .

    HEADER-PUR_GROUP = 'S99' .

    HEADER-COMP_CODE = '3000' .







    HEADERX-COMP_CODE = C_X.

    HEADERX-DOC_TYPE = C_X.

    HEADERX-VENDOR = C_X.

    HEADERX-CREAT_DATE = C_X.

    HEADERX-CREATED_BY = C_X.

    HEADERX-PURCH_ORG = C_X.

    HEADERX-PUR_GROUP = C_X.





    ITEM-STGE_LOC = '1001'.

    ITEM-RET_ITEM = 'X'.

    ITEM-PO_ITEM = '10'.

    ITEM-QUANTITY = IT_DATA-QUANTITY.

    ITEM-EMATERIAL =  IT_DATA-EMATN.

    ITEM-SHORT_TEXT = 'bapi deneme'.

    ITEM-ITEM_CAT = 'N' .

    ITEM-MATL_GROUP = '313'.

    ITEM-PLANT = WERKS .

    "ITEM-PO_UNIT = 'M'.







    APPEND ITEM. CLEAR ITEM.





*

    ITEMX-RET_ITEM = C_X.

    ITEMX-PO_ITEM = '10'.

    ITEMX-STGE_LOC = C_X.

    ITEMX-EMATERIAL = C_X.

    "ITEMX-SHORT_TEXT = C_X.

    ITEMX-QUANTITY = C_X.

    ITEMX-ITEM_CAT = C_X.

    "ITEMX-MATL_GROUP = C_X.

    ITEMX-PLANT = C_X.

    "ITEMX-PO_UNIT = C_X.

    ITEM-RET_ITEM = C_X.





    APPEND ITEMX. CLEAR ITEMX.







    ITEMSCHEDULE-PO_ITEM = '00010'.



    APPEND ITEMSCHEDULE.

    CLEAR ITEMSCHEDULE.







    ITEMSCHEDULEX-PO_ITEM = C_X.



    APPEND ITEMSCHEDULEX.

    CLEAR ITEMSCHEDULEX.







    CALL FUNCTION 'BAPI_PO_CREATE1'

      EXPORTING

        POHEADER  = HEADER

        POHEADERX = HEADERX

        " IMPORTING

        "EXPPURCHASEORDER = PURCHASEORDER

      TABLES

        RETURN    = RETURN

        POITEM    = ITEM

        POITEMX   = ITEMX.





*



    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

      EXPORTING

        WAIT   = ABAP_TRUE

      IMPORTING

        RETURN = RETURN.



    " LOOP AT RETURN.









    "CALL FUNCTION 'POPUP_TO_INFORM'

    " EXPORTING

    "  TITEL = 'Sipariş Durumu'

    " TXT1  = RETURN-MESSAGE

    " TXT2  = ' '

    " TXT3  = '  '

*         TXT4  = ' '

    " WRITE / RETURN-MESSAGE.





    DATA: INDEX TYPE I.

    DO 2 TIMES.

      INDEX = SY-INDEX * 50.



      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

        EXPORTING

          PERCENTAGE = INDEX

          TEXT       = 'Konsinye İade Siparişleri Oluşturuluyor.'.

      WAIT UP TO 1 SECONDS.

    ENDDO.



    CALL FUNCTION 'MESSAGES_INITIALIZE'.



    LOOP AT RETURN.

      CALL FUNCTION 'MESSAGE_STORE'

        EXPORTING

          ARBGB                   = RETURN-ID

          EXCEPTION_IF_NOT_ACTIVE = ' '

          MSGTY                   = RETURN-TYPE

          MSGV1                   = RETURN-MESSAGE_V1

          MSGV2                   = RETURN-MESSAGE_V2

          MSGV3                   = RETURN-MESSAGE_V3

          MSGV4                   = RETURN-MESSAGE_V4

          TXTNR                   = RETURN-NUMBER

          ZEILE                   = ' '

        EXCEPTIONS

          MESSAGE_TYPE_NOT_VALID  = 1

          NOT_ACTIVE              = 2

          OTHERS                  = 3.

    ENDLOOP.



    CALL FUNCTION 'MESSAGES_STOP'

      EXCEPTIONS

        A_MESSAGE = 04

        E_MESSAGE = 03

        I_MESSAGE = 02

        W_MESSAGE = 01.



    IF NOT SY-SUBRC IS INITIAL.



      CALL FUNCTION 'MESSAGES_SHOW'

        EXPORTING

          I_USE_GRID         = 'X'

          "i_amodal_window    = 'X'

        EXCEPTIONS

          INCONSISTENT_RANGE = 1

          NO_MESSAGES        = 2

          OTHERS             = 3.

    ENDIF.





  ENDLOOP.









ENDFORM.
2 REPLIES 2

SimoneMilesi
Active Contributor
0 Kudos
187

Hi Erkan,

first of all, please, format the code because it's pretty hard to read it.
Second, which error you get in return table?

Former Member
0 Kudos
187

Hello.

I updated.. I dont get error with this style.

But i want to make my import txt file format ean11 Quantity style