Parameters required to call function module COM_PRCAT_READ are missing..

Can anyone give a solution for this error. I got this error when i was defining product category..

just pass the Category GUID into this FM you will get the object family from category
Regards,
Shiva Kumar

Similar Messages

  • Requirement to call Function Module in Workflow

    Hi,
    I have been assigned to task wherein i have a requierement like this . I have created a workflow with step user decision with 2 options. Now the thing is that when user select one of option i need to call function module and based on result from
    workflow i need to done further processing. Since there is no event to trigger workflow i am using function module
    SAP_WAPI_START_WORKFLOW to trigger workflow .
    Kindly suggest me how would i call Function module in workflow. i.e. What are the ways( or by which step type facilitate
    me to call FM ) by which i should call FM and do further processing based on result.
    Thanks
    Parag

    Follow the below steps inorder to call a fucntion module from the workflow
    1. First you have to create either a business class or a Business object.... from SWO1 txn..
    2. Create a method in the BOR and while created the system will prompt a message that would you like to create by using any FM here you need to specify the name of the FM that you want to use in the workflow...
    3. ONce the method is created and the code will be generated automaticlaly by the system.. and then you have to create a standard task from PFTC txn..
    4. Once the task is created then you have to use the same task in the workflow.. by creating a activity step ...
    That's all..

  • Steps required in calling Function Module in VC Model

    Hi,
    How to Call a 'Z' or Standard function Module of BI/BW in VC Application.Could anybody tell step by step or details?
    Thanks and Regards,
    A.D.

    Hi,
    With reference to folllowing link
    http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/6068. [original link is broken] [original link is broken] [original link is broken]   able to solve the issue calling ZFunction Module.
    Thanks and Regards,
    A.D.

  • Suggest me way for calling Function Module in BSP page

    Dear Friends,
    I want to create sales order using BSP. For that there is an bapi called BAPI_SALES_CREATEFROMDAT2. I have two ways to do that.
    1. I will create all the required structure on the BW system and then i can call the bapi.
    2. I will create another function module which calls the BAPI_SALES_CREATEFROMDAT2. and i will pass all the require parameters to my created Function module.
    In the first case i suppose to create structure for header data, order items and partner data. It is quite lenghty work.
    In the second case i need not to create any kind of structure or types-pool.
    If answer is case1 then should i create exact structure or i can create that many fields contained structure which i require?
    Suggest me that whether should i follow first case or i should follow second case and also which one is more powerful?

    Thanks for giving me answer.
    I have tried to find through BAPI Browser for BAPI_SALESORDER_CREATEFROMDAT2 but unfortunately it is not creating the structure. This is very suprising for me because as per your weblog and as per your answer it should be generated. Now i have two choices :
    1. I create same structure on 6.20 system manually for that i have to create around 100 data elements or may be more than that which are not exits on 6.20 system.
    2. I will create another function module on 4.6c system which calls BAPI_SALESORDER_CREATEFROMDAT2 and i need to pass only selected parameters.
    2nd option is suitable for me but i have doubt that is the proper way for working production?

  • BTE Name in Called Function Module

    Hello,
    A function module say XYZ is called from a BTE. Can I know the name of the BTE which called the function module XYZ inside the function module XYZ ?
    With Regards,
    Avisesh.

    I think this document may help you...
    <b>Business Transaction Events</b>
    This activity describes how you can connect additional components (such as in the form of function modules developed yourself or a product from an external software provider) to the standard R/3 System.
    There are two types of interface available in the General Ledger
    Accounting (FI-GL), Accounts Receivable and Accounts Payable
    (FI-AR/FI-AP), and Sales and Distribution (SD) components for this:
    1. Publish & Subscribe interfaces (also called "informing interfaces" in the following) These should inform you about particular events (such as a document being entered) in the SAP standard application and make the data generated as a result available to the external software. The external software does not return any data to the standard R/3 System.
    (I'm confused. MIT is using two business transaction events for the SD to FI interface. Both of these events are Publish & Subscribe interfaces. They both return data to the SAP standard application! They both change the FI document before it is posted. What I've figured out is that if there is an export to memory and an import from memory before and after the function call, then we can't modify the data. We can check this in the calling function module - OUTBOUND_CALL_00503110_E or OPEN_FI_PERFORM_00001020_E, etc)
    Examples of such events in the R/3 System are:
    Master record was created, changed, or blocked
    Document was entered, parked, changed, or reversed
    Items were cleared or reset
    Additional processing can be caused in the additional component on the basis of these events and data:
    Starting a workflow
    Generating or changing additional data
    Requesting correspondence
    FI Clearing (F-32) calls (gathered via SE30):
    Function OPEN_FI_PERFORM_00001020_E (can't modify data)
    00001020 POST DOCUMENT:       Prior to final checks
    EVENT
    This Event is reached prior to completing the document. The checks that are carried out at this point include checking, prior to posting, that the document balances to zero, and calculations for tax offsetting. This Event is accessed once per standard posting process and is similar to validation at document level (Event 0003). A document number has not yet
    been assigned when this Event is reached.
    INTERFACE
    All document line items created and the document header data are
    transferred (both as tables).
    Parameter
    T_BSEG
    T_BKPF
    Function OPEN_FI_PERFORM_00001025_E (can't modify data)
    00001025 POST DOCUMENT:       Final checks completed
    EVENT
    This Event lies following all checks on the whole document, but prior to number assignment. Following this Event, no further error messages may be sent. The document is complete at this point, and no further changes can be made to it prior to posting.
    INTERFACE
    All current data, all document data relevant for the posting, and various control parameters are transferred to the additional component. At this point you can still implement your own checks on the current document data.
    Parameter
    I_BKDF
    T_AUSZ1
    T_AUSZ2
    T_AUSZ3
    T_BKP1
    T_BKPF
    T_BSEC
    T_BSED
    T_BSEG
    T_BSET
    T_BSEU
    Function OPEN_FI_PERFORM_00001030_E (can't modify data)
    Function OPEN_FI_PERFORM_00001140_E (can't modify data)
    2. Process interfaces (also referred to as "process" in the following) Process interfaces are used to submit business processes to a different control which cannot be realized with the standard system, that is process interfaces replace standard processes. Here you can structure determination of individual field contents or of specific reactions to process flows individually. It is possible to connect different external developments to the standard R/3 System. The additional developments are generally carried out using the ABAP/4 Development Workbench. This way you can, for example, influence the control of payment transactions. Selection of payment method, house bank and partner bank can be made using the payment data (currency, amount, and payee) according to a selection logic which you have defined.
    FI Clearing (F-32) calls:
    Function OPEN_FI_PERFORM_00001120_P
    Function OPEN_FI_PERFORM_00001130_P
    Function OPEN_FI_PERFORM_00001150_P
    Function OPEN_FI_PERFORM_00001170_P
    Standard Settings
    Sample modules are delivered in the standard R/3 System which you can
    copy into your name range and fill them with statements there.
    Activities
    1. Enter a product using "Settings -> Customer's products". Actually, in 4.6C, from transaction FIBF (IMG -> Financial Accounting -> Financial Accounting Global
    Settings -> Business Transaction Events):
    Settings -> Products -> ...of a customer
    There are generally a large number of function modules belonging to a product which can be called by different program events from within the standard R/3 System. A product can also be an external software component. If the product is in an external system, enter an RFC destination here. If the product is in the same system, you do not have to enter anything. Important: Do not forget to activate the product after making the following settings.
    2. Establish the interfaces with which the R/3 System provides you. To do this, choose
    Environment -> Info system (P/S)
    or
    Environment -> Info system (Processes).
    Execute the program. You should enter "A" as the
    attribute type. You see the respective interfaces with which the R/3 System provides you. Note the key of the interface which you require.
    You can also select:
    By particular SAP application components
    By particular events by entering intervals
    Which interfaces are used in activated products
    Which interfaces are used within a particular country version or within a particular industry
    Which interfaces are used within a particular customer product
    3. Enter the function module which you have developed yourself. To do this, choose either Goto -> Edit modules within the info system or Settings -> P/S modules or Process modules -> Customer's in the "SAP Business Framework" menu. Make the following entries:
    Key for the interface
    The product that you want to use
    Function module which belongs to this product.
    You can also enter several function modules for a product. Caution:
    The function module must be within your name range, that is must begin with the letter Z. You leave the Ctr and Appl. fields blank unless you want a particular country version or a particular SAP industry-specific component to be enhanced or replaced instead of the standard process flow.
    4. Fill the source text of your function module
    and activate it. To do this, go again via Environment -> Info system (P/S) or Environment -> Info system (Processes) into the information system and execute the program. Then proceed as follows:
    Click twice on the interface you have chosen. If you want, you can look at the interface at this point by choosing Goto -> Interface. Then choose the Back function again afterwards.
    Place the cursor on the relevant line and choose Goto -> Function library. You see the sample function module delivered by SAP.
    Copy the sample module delivered by SAP and call it the same as the function module entered in step 3.
    Fill the source text of the empty function module.
    Activate the function module.
    Activate the product as described in step 1.
    5. Run the R/3 program affected and test whether calling your function module works.
    Further Notes
    The other menu paths are only used for information about additional components delivered by SAP or about software already installed by external software providers.

  • What is the use of CALL FUNCTION MODULE - AT BACKGROUND TASK?

    Hi experts,
    I found Call functional module in background task will make the FM run at the next commit work as some people said. So I have some questions:
    1 if we use COMMIT WORK commend, the pending FM will be called? If there are several FMs called at background task, what is the sequence of them? How many conditions will trigger the running of these FMs?
    2 Where can I find the log of this pending FMs? In SAP library, it says there are 2 tables. But I checked these tables and can only find the FM name and user of it. And I can not understand content of these tables. It seems one is for the main information of FM, and the other is for the data of the FM, maybe the parameters.
    3 If I call a FM in this way, Can I canncel it before the next commit work in some way?
    Finally, thanks for reading and help.

    HI,
    When the COMMIT WORK statement is executed, the function modules registered for the current SAP-LUW are started in the order in which they were registered. ROLLBACK WORK deletes all previous registrations for the current SAP-LUW.
    If the specified destination is not available when COMMIT WORK is executed, an executable program called RSARFCSE is started in background processing. By default, this tries to start the function modules registered for a SAP-LUW in their destination every 15 minutes and up to 30 times. These parameters can be changed in the transaction SM59. If the destination does not become available within the defined time, it is recorded in the database table ARFCSDATA as the entry "CPICERR". The entry in the database table ARFCSSTATE is deleted after a standard period of eight days

  • Why Service Call and why not call Function module Directly in WD ABAP

    Hi,
    I have created a Webdynpro applications and the logic requires calling avrious Function modules.
    Do I need to create Service Call for each Function module or call them directly.
    It would be great if you can suggest me under what cases I need to opt for Service call
    For example, if I use 'RP_CALC_DATE_IN_INTERVAL', do I need to use Service call or call function module directly.
    Note: I have searched forums but could not get the correct answer which I want
    Thanks!

    The Service Call is really meant to be a wizard/time saver.  It has the advantage that it can generate matching context nodes/attributes for the interface of the Function Module you are calling. However everything that the service call does can also be created by hand.
    Personally I'm not a fan of what the service call wizard generates.  Its good as a time saver or for beginners, but I find I prefer to touch up the code it generates anyway. I much prefer to create a nice reusable model class with its own unit test and then consume this model class (with the service call wizard) from WD.  This model class might contain one or more function module calls depending upon what logic I need to access.

  • Call function module in backgrouns task and in update task

    Hi Gurus,Pls crear me on the " <b>Call function module in backgrouns task and in update task</b>".
    how it works and waht is the link with LUW  releated to these .
    also heard that commit work statement aslo linked with this.
    Pls clarfiy me with expalnation of code.

    Hi sridhar,
    the explanation already given is correct and good. Small add-on:
    All functions called during one LUW with addition IN UPDATE TASK are stored together with their actual parameters in a temporary memory area. The moment a COMMIT WORK is issued, the functions are released to be executed by a so-called update task which is running in the background. This explains why functions called in update task never return anything, no SY-SUBRC and no export or table parameters If a function called in update task raises an exception or runs into an error the calling user will get an express message informing about this. Also, all database updates done by this update process are rolled back to keep consistency.
    This proceeding helps to keep database tables consistent and allows the user to keep on doing his work before all database updates are complete. You may have seen messages like "material will be changed" after saving. If you open the same material immediately, you'll get a message "object locked by...<yourself>". This means the update task is still running.
    Regards,
    Clemens

  • Error BT616 when calling function module SXPG_COMMAND_EXECUTE in background

    Hi All,
    We use function module SXPG_COMMAND_EXECUTE with a custom command we defined in SM69 to move files in unix (mv command).
    The function module call has worked fine for almost a year and recently we have been seeing an error (BT616) in our job lob (SM37) when the program is run in background. We have not been able to reproduce the error in foreground mode and it seems to be occuring only periodically in the background. (The appropriate SAP authorization objects where assigned to the batch job ID and the steps on the batch job.) We are in the process of setting up the trace flag and performing analysis on the trace log via ST11 to help identify the issue.
    After perform analysis on SXPG_COMMAND_EXECUTE, the error is occurring when calling function module SAPXPG_END_XPG for exception 2, system failure, yet function module SAPXPG_END_XPG does not exist. I assume this is a program at the operating system level and is just a signature of the parameters to be passed to the operating system program.
    Below is part of the SAP function module SXPG_COMMAND_EXECUTE that is failing.
    * Now we have to wait for the termination of the external
    * command if the caller wants us to.
        IF TERMINATIONWAIT = 'X'.
          CALL FUNCTION 'SAPXPG_END_XPG'
            DESTINATION DESTINATION
            IMPORTING   EXITSTAT = STATUS
                        EXITCODE = EXITCODE
            TABLES      LOG      = LOG
            EXCEPTIONS  COMMUNICATION_FAILURE = 1 MESSAGE MSG
                        SYSTEM_FAILURE        = 2 MESSAGE MSG.
    I performed a where used on function module SXPG_COMMAND_EXECUTE, and most of SAP programs call the function module with the parameter TERMINATIONWAIT = 'X', so I assume we should pass ‘X’ as well.
    Any ideas on what could be causing this issue?
    Mike Vondran

    I also remember I have this kind of issue, as I have some UNIX script at OS( UNIX) level . The problem was with the ID , as it don’t have proper authorization at OS level ( UNIX ) . Please check this ID authorization. This could be the one of reasons if you’re sure from SAP standpoint.
    Hope this’ll give you some guide line..
    Thanks
    Bye

  • Call Function Module within an Extractor

    Hello Experts.
    We have a requirement where a function module needs to be called from within an extractor to retrieve the data. The function module exists in the HR box. What would be the steps to follow? We can't create a generic data source based on the function module in the HR box. Do I create the extractor in BW?
    Appreciate your help.
    Thanks!

    Since the FM on the HR box is remote-enabled, as you've stated, then any SAP application (e.g. BW, R3/ECC, et. al.) that has an RFC connection to that HR box can execute that FM.
    Executing a remote-enabled FM is exactly like executing any FM, with one exception. Like any FM, you pass a set of values or internal tables to the FM, through the EXPORTING or TABLES section of the FM,  and receive back a set of values or internal tables from the FM, through the IMPORTING or TABLES section of the FM. The exception is that you will have one additional parameter to pass, namely DESTINATION. So, the call to the FM would look something like this:
    CALL FUNCTION
      'ZREMOTE_FM'
    DESTINATION
      l_dest            "This is the environment where the FM sits - e.g. HRP100 or similar)
    EXPORTING
      logical_system = l_logical               "This is the calling environment - e.g. BWP100)
      ifield1 = l_ifield1
      ifield2 = l_ifield2
    IMPORTING
      efield1 = l_efield1
      efield2 = l_efield2
    TABLES
      t_itab1 = t_itab1
      t_itab2 = t_itab2
    EXCEPTIONS
      NO_DATA_FOUND = 1.
    You can code it so that l_dest is derived based on the value in l_logical. The values to be populated in l_dest and l_logical, however, are dependent on how your Basis team names the RFC connections. This assumes your landscape for HR is HRD100, HRQ100 and HRP100 for the development, quality and production, respectively and BWD100, BWQ100 and BWP100 for the BW landscape:
    CONCATENATE: sy-sysid sy-mandt INTO l_logical.
    CASE l_logical.
      WHEN 'BWD100'.
        l_dest = 'HRD100'.
      WHEN 'BWQ100'.
        l_dest = 'HRQ100'.
      WHEN 'BWP100'.
        l_dest = 'HRP100'.
      WHEN OTHERS.
    ENDCASE.

  • Uncatchable exception: BSP calling Function Module

    Hi all,
    currently i'm facing a very weird problem. My application class calls function module
    HR_INFOTYPE_OPERATION. Normally, in case of an error, the function module gives you back a return parameter. But if i call it from my BSP, the processing doesn't leave the function module. It directly throws an exception ERROR_MESSAGE_STATE instead of writing the message into parameter return.
    If i call the function module with the same parameters from a report, it works fine and the error message is written to return parameter without throwing an exception.
    What am i doing wrong? I don't want that exception and need to go on with filled parameter result.
    Regards
    Mark-André

    Hi MA,
    try using ERROR_MESSAGE in the exceptions list, like this.
    CALL FUNCTION 'func_name'
         EXPORTING
              string            = text
              pos               = position
         IMPORTING
              string1           = text1
              string2           = text2
         EXCEPTIONS
              string1_too_small = 1
              string2_too_small = 2
              ERROR_MESSAGE     = 3
              OTHERS            = 4.
    Cheers
    Graham Robbo

  • Calling Function Module in Update Task

    Hello Experts,
                              Can anyone let me know about
    Calling Function Module in Update Task.
    Why do we use this " In Update Task "  ??
    How do we Use ??
    What is the Use... ??
    Kindly let me know....
    Thanks and Regards
    Pramod

    hi,
    Why do we use this " In Update Task " ??
    The main update technique for bundling database changes in a single database LUW is to use CALL FUNCTION... IN UPDATE TASK.
    How do we Use ??
    A typical R/3 installation contains dialog work processes and at least one update work process. The update work processes are responsible for updating the database. When an ABAP program reaches a COMMIT WORK statement, any function modules from CALL FUNCTION... IN UPDATE TASK statements are released for processing in an update work process. The dialog process does not wait for the update to finish. This kind of update is called asynchronous update.
    What is the Use... ??
    Asynchronous update is useful when response time from the transaction is critical, and the database updates themselves are so complex that they justify the extra system load
    Real time scenario.
    Suppose a user wants to change an entry in a database table, or add a new one. He or she enters the necessary data, and then starts the update process by choosing Save. This starts the following procedure in the ABAP program:
    Firstly, the program locks the database entry against other users, using the enqueue work process (or the message server in the case of a distributed system). This generates an entry in the lock table. The user is informed whether the update was successful, or whether the lock could not be set because of other users.
    If the lock is set, the program reads the entry that is to be changed and modifies it. If the user has created a new entry, the program checks whether a record with the same key values already exists.
    In the current dialog work process, the program calls a function module using CALL FUNCTION... IN UPDATE TASK, and this writes the change details as an entry in table VBLOG.
    When the program is finished (maybe after further dialog steps), a COMMIT WORK statement starts the final part of the SAP LUW. The work process that is processing the current dialog step starts an update work process.
    Based on the information passed to it from the dialog work process, the update work process reads the log entries belonging to the SAP LUW from table VBLOG.
    The update work process passes this data to the database for updating, and analyzes the return message from the database. If the update was successful, the update work process triggers a database commit after the last database change and deletes the log entries from table VBLOG.
    If an error occurred, the update work process triggers a database rollback, leaves the log entries in table VBLOG, flags them as containing errors, and sends a SAPoffice message to the user, who should then inform the system administrator.
    The corresponding entries in the lock table are reset by the update work process.
    Hope this is helpful, Do reward.

  • Type error while calling function module with in FOX formula

    Hi,
    I am getting following error while calling function module from FOX Formula:
    "Types of parameter DAY_IN () and variable J_CALDAY(D) are inconsistent"
    Following is the code:
    DATA    I_CALDAY       TYPE  0CALDAY.
    DATA    N_CALDAY       TYPE  0CALDAY.
    DATA    KYF              TYPE KEYFIGURE_NAME.
    FOREACH   I_CALDAY, KYF.
       CALL FUNCTION SLS_MISC_GET_LAST_DAY_OF_MONTH
          EXPORTING
             DAY_IN  =  I_CALDAY
          IMPORTING
             LAST_DAY_OF_MONTH = N_CALDAY.
        {KYF, N_CALDAY}  =  {KYF, L_CALDAY}.
    ENDFOR.
    Import parameter DAY_IN is of type sy-datum (that inturn is data element SYDATUM of data type DATS - same as 0CALDAY). Not sure why error is being thrown. Any idea? Thanks.
    Edited by: SAP_BOY on Dec 4, 2009 5:26 PM

    Hi,
    I think It will not identify ,though you have  (data element SYDATUM of data type DATS - same as 0CALDAY).Check it out by assigning it through a variable of type D.
    Data I_CALDAY TYPE D.
    Hope it may work out.
    Regards,
    Indu

  • How to get info from calling Function Module without passing it.

    Hi,
    I am facing a problem like from calling function module i want values of some variables and i dont want to change the import and export parameters, is there any way to get it done...
    Thanks in advance...

    Hi,
    It is possible only if you can find the memory id of the varibale.
    You can find out it by debugging
    <removed by moderator>
    Edited by: Mike Pokraka on Aug 4, 2008 9:37 AM

  • Can we call functional module in a subroutine? Any example?

    Can we call functional module in a subroutine? Any example?

    sample code....
    REPORT  ZPL_BDC_PA30.
    TABLES : PA0022.
    DATA : V_PERNR LIKE PA0022-PERNR,
           V_SLABS LIKE PA0022-SLABS.
    DATA : FILENAME TYPE STRING.
    DATA : BEGIN OF IT_DATA OCCURS 0,
             PERNR LIKE PA0022-PERNR,       "Personnel Number
             SLABS LIKE PA0022-SLABS,       "Certificate code
             SLABS1 LIKE PA0022-SLABS,      "Certificate code new
           END OF IT_DATA.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 1 WITH HEADER LINE.
    DATA : BEGIN OF IT_ERROR OCCURS 0,
             POS LIKE SY-TABIX,
             TEXT(40),
           END OF IT_ERROR.
    PARAMETERS : P_FNAME TYPE DXFIELDS-LONGPATH.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
      CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
    EXPORTING
      I_LOCATION_FLAG       = ' '
      I_SERVER              = '?'
      I_PATH                = I_PATH
      FILEMASK              = '.'
      FILEOPERATION         = 'R'
       IMPORTING
      O_LOCATION_FLAG       = O_LOCATION_FLAG
      O_SERVER              = O_SERVER
         O_PATH                = P_FNAME
      ABEND_FLAG            = ABEND_FLAG
       EXCEPTIONS
         RFC_ERROR             = 1
         ERROR_WITH_GUI        = 2
         OTHERS                = 3
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    START-OF-SELECTION.
      FILENAME = P_FNAME.
      PERFORM UPLOAD.            "Uploading inputfile to internal table.
      PERFORM VALIDATE.          "validating the values
      PERFORM POPULATE_BDC.      "Populating bdc internal table
      PERFORM ERROR_RECORDS
            TABLES IT_ERROR.     "Error records
    *&      Form  bdc_fdata
    FORM BDC_FDATA  USING  FNAM FVAL.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-FNAM = FNAM.
      IT_BDCDATA-FVAL = FVAL.
      APPEND IT_BDCDATA.
    ENDFORM.                    " bdc_fdata
    *&      Form  bdc_hdata
    FORM BDC_HDATA  USING PROGRAM SCRNO DYNBEGIN.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM = PROGRAM.
      IT_BDCDATA-DYNPRO = SCRNO.
      IT_BDCDATA-DYNBEGIN = DYNBEGIN.
      APPEND IT_BDCDATA.
    ENDFORM.                    " bdc_hdata
    *&      Form  upload
    FORM UPLOAD .
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = FILENAME
         FILETYPE                      = 'ASC'
         HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            = VIRUS_SCAN_PROFILE
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    = FILELENGTH
      HEADER                        = HEADER
        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 I000(BCTRAIN) WITH 'FILE NOT UPLOADED'.
      ELSE.
       MESSAGE I000(BCTRAIN) WITH 'FILE UPLOADED'.
      ENDIF.
    ENDFORM.                    " upload
    *&      Form  populate_bdc
    FORM POPULATE_BDC .
      LOOP AT IT_DATA .
        PERFORM BDC_HDATA USING 'SAPMP50A'
                                    '1000'
                                    'X'.
        PERFORM BDC_FDATA USING 'RP50G-PERNR'
                                 IT_DATA-PERNR.
        PERFORM BDC_FDATA USING 'RP50G-CHOIC'
                                 '0022'.
        PERFORM BDC_FDATA USING 'BDC_OKCODE'
                                 '=MOD'.
        PERFORM BDC_HDATA USING 'MP002200'
                                     '2000'
                                     'X'.
        PERFORM BDC_FDATA USING 'P0022-SLABS'
                                 IT_DATA-SLABS1.
        PERFORM BDC_FDATA USING 'BDC_OKCODE'
                                 '=UPD'.
        CALL TRANSACTION 'PA30' USING IT_BDCDATA.
        REFRESH IT_BDCDATA.
      ENDLOOP.
    ENDFORM.                    " populate_bdc
    *&      Form  validate
    FORM VALIDATE .
        data : num like sy-tabix,
               num1 like sy-tabix.
      LOOP AT IT_DATA.
       num = num + 1.
    num1 = sy-tabix.
        SELECT PERNR
             FROM PA0022
             INTO V_PERNR WHERE
             PERNR EQ IT_DATA-PERNR.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MOVE num TO IT_ERROR-POS.
          MOVE 'Invalid Pernr' TO IT_ERROR-TEXT.
          APPEND IT_ERROR.
          DELETE IT_DATA .
        ELSE.
          IF IT_DATA-SLABS IS INITIAL.
            MOVE num TO IT_ERROR-POS.
            MOVE 'Certificate code is initial' TO IT_ERROR-TEXT.
            APPEND IT_ERROR.
            DELETE IT_DATA.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " validate
    *&      Form  error_records
    FORM ERROR_RECORDS TABLES IT_ERRORS.
      FORMAT COLOR COL_GROUP.
      WRITE : / 'Error in the following records : ' .
      FORMAT COLOR COL_NEGATIVE.
      LOOP AT IT_ERROR.
        WRITE : /  IT_ERROR-POS,
                   IT_ERROR-TEXT.
      ENDLOOP.
    ENDFORM.                    " error_records

Maybe you are looking for