Skip to Content

    When we call the BAPI , Example to create or modify a meterial data . Often face dozens or even hundreds of fields corresponding to “BAPIUPDATE”.The following function codes can be done will not emty field of the same name “BAPIUPDATE” fill to “X”.

CODE 




 FUNCTION ZBAPI_UPDATEFLAG_SET_X.
 *"----------------------------------------------------------------------
 *"*"本地接口:
 *"  IMPORTING
 *"     VALUE(INPUT)
 *"     VALUE(FLAG) DEFAULT 'X'
 *"  EXPORTING
 *"     REFERENCE(OUTPUT)
 *"  EXCEPTIONS
 *"      PARAMETER_NOT_STRUCTURE
 *"----------------------------------------------------------------------
 *" Author : 高巍巍
 *"----------------------------------------------------------------------
   TYPE-POOLS: sydes.
   DATA
     : lr_structure  TYPE REF   TO cl_abap_structdescr"cl_abap_typedescr
     , ls_component  TYPE          abap_compdescr
     .
   FIELD-SYMBOLS
       : <fs_val>
       , <fs_flg>
       .
   lr_structure ?= cl_abap_typedescr=>describe_by_data( output  ).
   CHECK lr_structure IS NOT INITIAL.
   IF lr_structure->kind NE cl_abap_typedescr=>kind_struct.
     RAISE parameter_not_structure.
   ENDIF.
   LOOP AT lr_structure->components INTO ls_component .
     CHECK ls_component-type_kind = 'C' AND
           ls_component-length    = 1.
     ASSIGN COMPONENT ls_component-name OF STRUCTURE input  TO <fs_val>.
     CHECK <fs_val> IS ASSIGNED.
     ASSIGN COMPONENT ls_component-name OF STRUCTURE output TO <fs_flg>.
     CHECK <fs_flg> IS ASSIGNED.
     IF <fs_val> IS NOT INITIAL AND
        <fs_flg> IS     INITIAL.
       <fs_flg> = flag.
     ENDIF.
     UNASSIGN : <fs_val>,<fs_flg>.
   ENDLOOP.
 ENDFUNCTION.

Example :


DATA
  :  LS_CLIENTDATA   LIKE BAPI_MARA
  ,  LS_CLIENTDATAX  LIKE BAPI_MARAX
  .
CALL FUNCTION 'ZBAPI_UPDATEFLAG_SET_X'
    EXPORTING
        INPUT             = LS_CLIENTDATA
    IMPORTING
        OUTPUT            = LS_CLIENTDATAX
    EXCEPTIONS
        PARAMETER_NOT_STRUCTURE = 1
        OTHERS            = 2.
































To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply